diff -Nru kylin-scanner-3.2.1/debian/changelog kylin-scanner-3.2.1/debian/changelog
--- kylin-scanner-3.2.1/debian/changelog	2025-02-21 15:14:02.000000000 +0800
+++ kylin-scanner-3.2.1/debian/changelog	2025-03-25 11:28:31.000000000 +0800
@@ -1,3 +1,23 @@
+kylin-scanner (3.2.1-ok2.30) nile; urgency=medium
+
+  * BUG号:无
+  * 需求号:无
+  * 任务号: 无
+  * 其他改动说明:修改开源扫描内容
+  * 其他改动影响域:无 
+
+ -- fanyuchen <fanyuchen@kylinos.cn>  Tue, 25 Mar 2025 11:28:31 +0800
+
+kylin-scanner (3.2.1-ok2.29) nile; urgency=medium
+
+  * BUG号:无
+  * 需求号:无
+  * 任务号: 无
+  * 其他改动说明:版本号+1触发cimg-dev问题重新编译 
+  * 其他改动影响域:无 
+
+ -- fanyuchen <fanyuchen@kylinos.cn>  Mon, 10 Mar 2025 17:50:39 +0800
+
 kylin-scanner (3.2.1-ok2.28) nile; urgency=medium
 
   * BUG号: #IA6U8R 【扫描】【次要】断开扫描仪与查询扫描仪提示语不规范
diff -Nru kylin-scanner-3.2.1/debian/patches/0040-Merge-remote-tracking-branch-source-openkylin-nile-i.patch kylin-scanner-3.2.1/debian/patches/0040-Merge-remote-tracking-branch-source-openkylin-nile-i.patch
--- kylin-scanner-3.2.1/debian/patches/0040-Merge-remote-tracking-branch-source-openkylin-nile-i.patch	1970-01-01 08:00:00.000000000 +0800
+++ kylin-scanner-3.2.1/debian/patches/0040-Merge-remote-tracking-branch-source-openkylin-nile-i.patch	2025-03-25 11:28:31.000000000 +0800
@@ -0,0 +1,250 @@
+From: openkylin-cibot <openkylin-cibot@kylinos.cn>
+Date: Tue, 25 Mar 2025 03:30:37 +0000
+Subject: Merge remote-tracking branch 'source/openkylin/nile' into
+ openkylin/nile
+
+---
+ NOTICE                          | 31 ------------------------
+ kylin-scanner.pro               |  3 +--
+ src/mainwidget.cpp              |  2 +-
+ src/qss/qlistview-scrollbar.qss | 52 -----------------------------------------
+ src/qss/qlistview-white.qss     | 28 ----------------------
+ src/usb.cpp                     | 49 +++++++++++++++++++++++---------------
+ src/usb.h                       |  2 +-
+ 7 files changed, 33 insertions(+), 134 deletions(-)
+ delete mode 100644 NOTICE
+ delete mode 100644 src/qss/qlistview-scrollbar.qss
+ delete mode 100644 src/qss/qlistview-white.qss
+
+diff --git a/NOTICE b/NOTICE
+deleted file mode 100644
+index 8c7f617..0000000
+--- a/NOTICE
++++ /dev/null
+@@ -1,31 +0,0 @@
+-OPEN SOURCE SOFTWARE NOTICE
+-Please note we provide an open source software notice for the third party open source software along with this software and/or this software component (in the following just “this SOFTWARE”). The open source software licenses are granted by the respective right holders.
+-Warranty Disclaimer
+-THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
+-Copyright Notice and License Texts
+-
+-------------------------------------------------------------------------
+-Software: Avahi
+-
+-Files: src/device/avahi_qt/*
+-Copyright: 2004-2022, Avahi developers
+-License: LGPL-2.1+
+- This program is free software; you can redistribute it and/or modify it
+- under the terms of the GNU Lesser General Public License as published by the
+- Free Software Foundation; version 2.1 of the License, or (at
+- your option) any later version.
+- On Debian systems, the complete text of version 2.1 of the GNU Lesser
+- General Public License can be found in '/usr/share/common-licenses/LGPL-2.1'.
+-------------------------------------------------------------------------
+-Software: qtzeroconf
+-
+-Files: src/device/qt_zeroconf/*
+-Copyright: 2012, Johannes Hilden
+-License: LGPL-2.1+
+- This program is free software; you can redistribute it and/or modify it
+- under the terms of the GNU Lesser General Public License as published by the
+- Free Software Foundation; version 2.1 of the License, or (at
+- your option) any later version.
+- On Debian systems, the complete text of version 2.1 of the GNU Lesser
+- General Public License can be found in '/usr/share/common-licenses/LGPL-2.1'.
+-------------------------------------------------------------------------
+diff --git a/kylin-scanner.pro b/kylin-scanner.pro
+index 99489a6..2f17e8f 100644
+--- a/kylin-scanner.pro
++++ b/kylin-scanner.pro
+@@ -259,8 +259,7 @@ schemes.path = /usr/share/glib-2.0/schemas/
+ INSTALLS += target desktop icons qm_files help_files schemes
+ 
+ RESOURCES += \
+-    src/icons/icons.qrc \
+-    src/qss/scrollbar.qrc
++    src/icons/icons.qrc 
+ 
+ DISTFILES += \
+     data/org.kylin-scanner-data.gschema.xml \
+diff --git a/src/mainwidget.cpp b/src/mainwidget.cpp
+index 68b38a1..8c4ea20 100644
+--- a/src/mainwidget.cpp
++++ b/src/mainwidget.cpp
+@@ -47,7 +47,7 @@ MainWidget::MainWidget(QWidget *parent)
+     if (g_config_signal->m_kylinScannerImageDebug) {
+         scanThreadFinishedSlot(SANE_STATUS_GOOD);
+     } else {
+-        g_sane_object->hotplug_sock = init_hotplug_sock();
++        g_sane_object->hotplug_sock = create_uevent_socket();
+         m_detectScanDevicesThread.start();
+     }
+     this->setAttribute(Qt::WA_AlwaysShowToolTips);
+diff --git a/src/qss/qlistview-scrollbar.qss b/src/qss/qlistview-scrollbar.qss
+deleted file mode 100644
+index 9f4e4ec..0000000
+--- a/src/qss/qlistview-scrollbar.qss
++++ /dev/null
+@@ -1,52 +0,0 @@
+-// 设置垂直滚动条基本样式
+-QScrollBar:vertical
+-{
+-    width:28px;
+-    background:rgba(0,0,0,0%);
+-    margin:0px,0px,0px,0px;
+-    padding-top:9px;   // 留出9px给上面和下面的箭头
+-    padding-bottom:9px;
+-}
+-QScrollBar::handle:vertical
+-{
+-    width:28px;
+-    background:rgba(0,0,0,25%);
+-    border-radius:4px;   // 滚动条两端变成椭圆
+-    min-height:20;
+-}
+-QScrollBar::handle:vertical:hover
+-{
+-    width:28px;
+-    background:rgba(0,0,0,50%);   // 鼠标放到滚动条上的时候,颜色变深
+-    border-radius:4px;
+-    min-height:20;
+-}
+-QScrollBar::add-line:vertical   // 这个应该是设置下箭头的,3.png就是箭头
+-{
+-    height:9px;width:28px;
+-    border-image:url(:/images/a/3.png);
+-    subcontrol-position:bottom;
+-}
+-QScrollBar::sub-line:vertical   // 设置上箭头
+-{
+-    height:9px;width:28px;
+-    border-image:url(:/images/a/1.png);
+-    subcontrol-position:top;
+-}
+-QScrollBar::add-line:vertical:hover   // 当鼠标放到下箭头上的时候
+-{
+-    height:9px;width:28px;
+-    border-image:url(:/images/a/4.png);
+-    subcontrol-position:bottom;
+-}
+-QScrollBar::sub-line:vertical:hover  // 当鼠标放到下箭头上的时候
+-{
+-    height:9px;width:28px;
+-    border-image:url(:/images/a/2.png);
+-    subcontrol-position:top;
+-}
+-QScrollBar::add-page:vertical,QScrollBar::sub-page:vertical   // 当滚动条滚动的时候,上面的部分和下面的部分
+-{
+-    background:rgba(0,0,0,10%);
+-    border-radius:4px;
+-}
+diff --git a/src/qss/qlistview-white.qss b/src/qss/qlistview-white.qss
+deleted file mode 100644
+index bf5c016..0000000
+--- a/src/qss/qlistview-white.qss
++++ /dev/null
+@@ -1,28 +0,0 @@
+-/**
+- * Qss for ScrollBar stylesheet in thumbnailwidget.cpp
+- * /
+-
+-QListView
+-{
+-    outline:none;
+-    background:rgba(255,255, 255, 0.1);
+-    border-radius: 6px;
+-}
+-
+-QListView::item
+-{
+-    margin:0 1px 0 1px;
+-    background:rgba(0, 0, 0, 0.5);
+-    border-radius: 6px;
+-}
+-
+-QListView::item:selected
+-{
+-    border:1px solid #3790FA;
+-    background:rgba(255, 255, 255, 0.1);
+-}
+-
+-QListView::item:hover
+-{
+-    background:rgba(255, 255, 255, 0.1);
+-}
+diff --git a/src/usb.cpp b/src/usb.cpp
+index 14bd3ac..97a1149 100644
+--- a/src/usb.cpp
++++ b/src/usb.cpp
+@@ -18,28 +18,39 @@
+ 
+ #include "usb.h"
+ 
+-int init_hotplug_sock()
++int create_uevent_socket(void)
+ {
+-    const int buffersize = 16 * 1024 * 1024;
+-    int ret;
+-    struct sockaddr_nl snl;
+-    memset(&snl, 0x00, sizeof(struct sockaddr_nl));
+-    snl.nl_family = AF_NETLINK;
+-    snl.nl_pid = getpid();
+-    snl.nl_groups = 1;
+-//    setsockopt(SO_REUSEADDR);
+-    int s = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_KOBJECT_UEVENT);
+-    if (s == -1) {
+-        perror("socket");
++    const int buf_size = 16 << 20;  // 16MB in bytes
++    int sock_fd;
++    struct sockaddr_nl addr;
++    int result;
++
++    // Initialize netlink address structure
++    bzero(&addr, sizeof(addr));
++    addr.nl_family = AF_NETLINK;
++    addr.nl_pid = getpid();
++    addr.nl_groups = 0x1;  // Bitmask for group 1
++
++    // Create netlink socket
++    sock_fd = socket(AF_NETLINK, SOCK_DGRAM, NETLINK_KOBJECT_UEVENT);
++    if (sock_fd < 0) {
++        fprintf(stderr, "Socket creation failed: %s\n", strerror(errno));
+         return -1;
+     }
+-    setsockopt(s, SOL_SOCKET, SO_RCVBUF, &buffersize, sizeof(buffersize));
+-    ret = bind(s, (struct sockaddr *)&snl, sizeof(struct sockaddr_nl));
+-    if (ret < 0) {
+-        perror("bind");
+-        close(s);
++
++    // Set receive buffer size
++    if (setsockopt(sock_fd, SOL_SOCKET, SO_RCVBUF,
++                  &buf_size, sizeof(buf_size)) < 0) {
++        fprintf(stderr, "Failed to set socket options: %s\n", strerror(errno));
++    }
++
++    // Bind socket to address
++    result = bind(sock_fd, (struct sockaddr*)&addr, sizeof(addr));
++    if (result != 0) {
++        fprintf(stderr, "Socket binding failed: %s\n", strerror(errno));
++        close(sock_fd);
+         return -1;
+     }
+-    return s;
+-}
+ 
++    return sock_fd;
++}
+diff --git a/src/usb.h b/src/usb.h
+index 1a60b0f..e0d9e22 100644
+--- a/src/usb.h
++++ b/src/usb.h
+@@ -40,7 +40,7 @@
+ extern "C" {
+ #endif
+ 
+-int init_hotplug_sock();
++int create_uevent_socket(void);
+ 
+ #ifdef __cplusplus
+ }
diff -Nru kylin-scanner-3.2.1/debian/patches/series kylin-scanner-3.2.1/debian/patches/series
--- kylin-scanner-3.2.1/debian/patches/series	2025-02-21 15:14:02.000000000 +0800
+++ kylin-scanner-3.2.1/debian/patches/series	2025-03-25 11:28:31.000000000 +0800
@@ -37,3 +37,4 @@
 0037-37-fix-tooltip.patch
 0038-Translated-using-Weblate-Vietnamese.patch
 0039-38-fix-bug.patch
+0040-Merge-remote-tracking-branch-source-openkylin-nile-i.patch