Arch Linux stc-isp-wine AUR 包
stc-isp-wine AUR 包 https://aur.archlinux.org/packages/stc-isp-wine/
PKGBUILD
# Maintainer: taotieren <admin@taotieren.com> pkgname=stc-isp-wine pkgver=v6.88F pkgrel=1 pkgdesc="Wine STC-ISP 下载编程烧录软件" arch=('any') url="http://www.stcmcudata.com" license=('unknow') provides=(${pkgname}) conflicts=(${pkgname} ${pkgname%-wine} 'stc-isp-bin') replaces=('stc-isp-bin') depends=('wine' 'wqy-zenhei' 'winetricks') optdepends=("wine-mono-gecko-version-fix: Fix the version numbers of wine-mono and wine-gecko files to solve the dialog box that pops up when starting wine.") makedepends=('unarchiver') backup=() options=('!strip') install=${pkgname}.install source=("${pkgname%-wine}-${pkgver}.zip::${url}/STCISP/${pkgname%-wine}-15xx-${pkgver}.zip" "${pkgname}.install") sha256sums=('f5a0499c37048ec1311048b61b0c17c883226133d56708e931496e06dd706e34' 'b2a93211b74f6e23a9c4dd508c65bf374c0a03c11174092f6ccec3e9194e47a6') noextract=("${pkgname%-wine}-${pkgver}.zip") prepare() { unar -e GBK "${srcdir}/${pkgname%-wine}-${pkgver}.zip" } package() { export LC_CTYPE="zh_CN.UTF-8" _stc="opt/STCMCU" _ftname="wqy-zenhei.ttc" install -dm0755 "${pkgdir}/${_stc}/${pkgname%-wine}" cp -ra ${srcdir}/${pkgname%-wine}-${pkgver}/* "${pkgdir}/${_stc}/${pkgname%-wine}" find "${pkgdir}/${_stc}" -type f -exec chmod 644 "{}" \; find "${pkgdir}/${_stc}" -type d -exec chmod 755 "{}" \; install -Dm0644 /dev/stdin "${pkgdir}/${_stc}/${pkgname%-wine}/regpatch.reg" << EOF REGEDIT4 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink] "Lucida Sans Unicode"="${_ftname}" "Microsoft Sans Serif"="${_ftname}" "MS Sans Serif"="${_ftname}" "Tahoma"="${_ftname}" "Tahoma Bold"="${_ftname}" "SimSun"="${_ftname}" "Arial"="${_ftname}" "Arial Black"="${_ftname}" "Lucida Sans Unicode"=str(7):"${_ftname}" "Microsoft Sans Serif"=str(7):"${_ftname}" "Tahoma"=str(7):"${_ftname}" "Lucida Sans Unicode"="${_ftname}" "Microsoft Sans Serif"="${_ftname}" "Microsoft YaHei"="${_ftname}" "微软雅黑"="${_ftname}" "宋体"="${_ftname}" "新細明體"="${_ftname}" "DFKai-SB"="${_ftname}" "FangSong"="${_ftname}" "KaiTi"="${_ftname}" "Microsoft JhengHei"="${_ftname}" "Microsoft YaHei"="${_ftname}" "MingLiU"="${_ftname}" "NSimSun"="${_ftname}" "PMingLiU"="${_ftname}" "SimHei"="${_ftname}" "SimKai"="${_ftname}" "SimSun"="${_ftname}" [HKEY_CURRENT_USER\Software\Wine\X11 Driver] "ClientSideAntiAliasWithCore"="N" "ClientSideAntiAliasWithRender"="N" "ClientSideWithRender"="N" [HKEY_CURRENT_USER\Control Panel\Desktop] "FontSmoothing"="2" "FontSmoothingType"=dword:00000002 "FontSmoothingGamma"=dword:00000578 "FontSmoothingOrientation"=dword:00000001 [HKEY_LOCAL_MACHINE\Software\Wine\Ports] "COM1"="/dev/ttyUSB0" "COM2"="/dev/ttyUSB1" "COM3"="/dev/ttyUSB2" "COM4"="/dev/ttyUSB3" "COM5"="/dev/ttyUSB4" "COM6"="/dev/ttyUSB5" "COM7"="/dev/ttyACM0" EOF install -Dm0755 /dev/stdin "${pkgdir}/usr/bin/${pkgname%-wine}" << EOF #!/bin/bash export WINEARCH=win32 WINEPREFIX="$HOME/.${pkgname%-wine}/wine" if [ ! -d "$HOME"/.${pkgname%-wine} ] ; then mkdir -p "$HOME"/.${pkgname%-wine}/wine || exit 1 cp -r /${_stc}/${pkgname%-wine}/regpatch.reg "$HOME"/.${pkgname%-wine}/wine || exit 1 ln -s /${_stc}/${pkgname%-wine}/${pkgname%-wine}-${pkgver}.exe "$HOME"/.${pkgname%-wine}/${pkgname%-wine} || exit 1 ln -s -T /${pkgdir}/${_stc}/${pkgname%-wine}/"STC-USB Driver" "$HOME"/.${pkgname%-wine}/"STC-USB Driver" || exit 1 ln -s -T /${_stc}/${pkgname%-wine}/"USB to UART Driver" "$HOME"/.${pkgname%-wine}/"USB to UART Driver" || exit 1 ln -s -T /${_stc}/${pkgname%-wine}/"STC-USB驱动安装说明.pdf" "$HOME"/.${pkgname%-wine}/"STC-USB驱动安装说明.pdf" || exit 1 ln -s -T /${_stc}/${pkgname%-wine}/readme.txt "$HOME"/.${pkgname%-wine}/readme.txt || exit 1 fi if [ ! -f "$HOME"/.${pkgname%-wine}/regpatchok ] ; then touch "$HOME"/.${pkgname%-wine}/regpatchok || exit 1 cd "$HOME"/.${pkgname%-wine}/wine && regedit regpatch.reg && wineserver -k winetricks -q mfc42 fi wine "$HOME"/.${pkgname%-wine}/${pkgname%-wine} "$@" EOF install -Dm0644 /dev/stdin "${pkgdir}/usr/share/applications/${pkgname%-wine}.desktop" << EOF [Desktop Entry] Name=${pkgname%-wine} Name[zh_CN]=${pkgname%-wine} Comment=${pkgdesc} #MimeType=application/x-${pkgname%-wine}; Exec=${pkgname%-wine} %f Type=Application Categories=Development;Tool; Terminal=false Icon=${pkgname%-wine}.png Version=${pkgver} EOF }
stc-isp-wine.install
info() { echo -e "STC-ISP 下载编程烧录软件" } post_install() { info } post_upgrade() { echo "deleting the stc-isp bottle..." find /home -maxdepth 2 -name ".stc-isp" -exec rm -rf {} \; info } pre_remove() { echo "deleting the stc-isp bottle..." find /home -maxdepth 2 -name ".stc-isp" -exec rm -rf {} \; }
运行效果
更新 stc-isp-wine 脚本,因为新版本的 STC-ISP 支持中英文
# Maintainer: taotieren <admin@taotieren.com> pkgname=stc-isp-wine pkgver=v6.88L pkgrel=1 pkgdesc="Wine STC-ISP 下载编程烧录软件" arch=('any') url="http://www.stcmcudata.com" license=('unknow') provides=('STC-ISP') conflicts=( ${pkgname%-wine} 'stc-isp-bin') replaces=('stc-isp-bin') depends=('wine' 'wqy-microhei' 'winetricks') optdepends=("wine-mono-gecko-version-fix: Fix the version numbers of wine-mono and wine-gecko files to solve the dialog box that pops up when starting wine.") makedepends=('unarchiver') backup=() options=('!strip') install=${pkgname}.install source=("${pkgname%-wine}-${pkgver}.zip::${url}/STCISP/${pkgname%-wine}-15xx-${pkgver}.zip" "${pkgname}.install") sha256sums=('741c7375c173c187a4172156dc2d6eb1f7b9196b0757bad6a0e5fd0da6a2ba50' 'b2a93211b74f6e23a9c4dd508c65bf374c0a03c11174092f6ccec3e9194e47a6') noextract=("${pkgname%-wine}-${pkgver}.zip") prepare() { unar -e GBK "${srcdir}/${pkgname%-wine}-${pkgver}.zip" } package() { export LC_CTYPE="zh_CN.UTF-8" _stc="opt/STCMCU" _ftname="wqy-microhei.ttc" install -dm0755 "${pkgdir}/${_stc}/${pkgname%-wine}" cp -ra "${srcdir}/${pkgname%-wine}-${pkgver}/${pkgname%-wine}-${pkgver}.exe" "${pkgdir}/${_stc}/${pkgname%-wine}" find "${pkgdir}/${_stc}" -type f -exec chmod 644 "{}" \; find "${pkgdir}/${_stc}" -type d -exec chmod 755 "{}" \; install -Dm0644 /dev/stdin "${pkgdir}/${_stc}/${pkgname%-wine}/regpatch.reg" << EOF REGEDIT4 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink] "Lucida Sans Unicode"="${_ftname}" "Microsoft Sans Serif"="${_ftname}" "MS Sans Serif"="${_ftname}" "Tahoma"="${_ftname}" "Tahoma Bold"="${_ftname}" "SimSun"="${_ftname}" "Arial"="${_ftname}" "Arial Black"="${_ftname}" "Lucida Sans Unicode"=str(7):"${_ftname}" "Microsoft Sans Serif"=str(7):"${_ftname}" "Tahoma"=str(7):"${_ftname}" "Lucida Sans Unicode"="${_ftname}" "Microsoft Sans Serif"="${_ftname}" "Microsoft YaHei"="${_ftname}" "微软雅黑"="${_ftname}" "宋体"="${_ftname}" "新細明體"="${_ftname}" "DFKai-SB"="${_ftname}" "FangSong"="${_ftname}" "KaiTi"="${_ftname}" "Microsoft JhengHei"="${_ftname}" "Microsoft YaHei"="${_ftname}" "MingLiU"="${_ftname}" "NSimSun"="${_ftname}" "PMingLiU"="${_ftname}" "SimHei"="${_ftname}" "SimKai"="${_ftname}" "SimSun"="${_ftname}" [HKEY_CURRENT_USER\Software\Wine\X11 Driver] "ClientSideAntiAliasWithCore"="N" "ClientSideAntiAliasWithRender"="N" "ClientSideWithRender"="N" [HKEY_CURRENT_USER\Control Panel\Desktop] "FontSmoothing"="2" "FontSmoothingType"=dword:00000002 "FontSmoothingGamma"=dword:00000578 "FontSmoothingOrientation"=dword:00000001 [HKEY_LOCAL_MACHINE\Software\Wine\Ports] "COM1"="/dev/ttyUSB0" "COM2"="/dev/ttyUSB1" "COM3"="/dev/ttyUSB2" "COM4"="/dev/ttyUSB3" "COM5"="/dev/ttyUSB4" "COM6"="/dev/ttyUSB5" "COM7"="/dev/ttyUSB6" "COM8"="/dev/ttyUSB7" "COM9"="/dev/ttyUSB8" "COM10"="/dev/ttyACM0" "COM11"="/dev/ttyACM1" "COM12"="/dev/ttyACM2" "COM13"="/dev/ttyACM3" "COM14"="/dev/ttyACM4" "COM15"="/dev/ttyACM5" "COM16"="/dev/ttyACM6" "COM17"="/dev/ttyACM7" "COM18"="/dev/ttyACM8" "COM19"="/dev/ttyACM9" EOF install -Dm0755 /dev/stdin "${pkgdir}/usr/bin/${pkgname%-wine}" << EOF #!/bin/bash export LC_CTYPE="zh_CN.UTF-8" export WINEARCH=win32 WINEPREFIX="$HOME/.${pkgname%-wine}/wine" if [ ! -d "$HOME"/.${pkgname%-wine} ] ; then mkdir -p "$HOME"/.${pkgname%-wine}/wine || exit 1 cp -r /${_stc}/${pkgname%-wine}/regpatch.reg "$HOME"/.${pkgname%-wine}/wine || exit 1 ln -s /${_stc}/${pkgname%-wine}/${pkgname%-wine}-${pkgver}.exe "$HOME"/.${pkgname%-wine}/${pkgname%-wine} || exit 1 fi if [ ! -f "$HOME"/.${pkgname%-wine}/regpatchok ] ; then touch "$HOME"/.${pkgname%-wine}/regpatchok || exit 1 cd "$HOME"/.${pkgname%-wine}/wine && regedit regpatch.reg && wineserver -k winetricks -q mfc42 fi wine "$HOME"/.${pkgname%-wine}/${pkgname%-wine} "\$@" EOF install -Dm0644 /dev/stdin "${pkgdir}/usr/share/applications/${pkgname%-wine}.desktop" << EOF [Desktop Entry] Name=${pkgname%-wine} Name[zh_CN]=${pkgname%-wine} Comment=${pkgdesc} #MimeType=application/x-${pkgname%-wine}; Exec=${pkgname%-wine} %f Type=Application Categories=Development;Tool; Terminal=false Icon=${pkgname%-wine}.png Version=${pkgver} EOF }
解决了以下问题:
- 处理 STC-ISP 运行环境 -》 /usr/bin/${pkgname%-wine}
- STC-ISP 运行时字体显示方框 -> 写了个注册表导入了 wqy-microhei 字体支持
- 串口号映射 -> 在注册表中处理
- dotnet 运行环境 -> winetricks -q mfc42
- 新版本的 STC-ISP 多了中英文切换,处理语言切换时中文字体乱码 -》 export LC_CTYPE=“zh_CN.UTF-8”
- 增加了 Linux 桌面文件 -》/usr/share/applications/${pkgname%-wine}.desktop
- 删除了自带的驱动程序 -》 linux 下安装 win 的驱动,也安装不上,留着也没用,一些串口驱动在 Linux 是能自动识别,使用 lsusb 查看即可,如果没有自行安装驱动,
- 可能会踩的坑 Ubuntu 等需要将 $USER 加到 串口组(uucp) 里面(新版本一般是 uucp ,旧版本可能是其他的,使用 ls -lsh /dev/ttyUSB* 查看设备所在组。如果在 Linux 下调试时遇到串口不通或者提示没权限,把用户加入串口设备组里面,后重启电脑试试。示例:
# 查看 串口设备组 ❯ ls -lash /dev/ttyS0 0 crwxrwxrwx 1 root uucp 4, 64 Feb 15 19:09 /dev/ttyS0 ❯ sudo gpasswd -a `whoami` uucp [sudo] taotieren 的密码: 正在将用户“taotieren”加入到“uucp”组中 ❯ groups `whoami` wheel uucp vboxusers taotieren ❯ reboot # 如果添加 uucp 后还是不能使用,尝试安装 uucp 软件包,以 Arch 为例,其他 Linux 根据设备组确认 ❯ yay -Syu uucp
本文来自博客园,作者:饕餮人,转载请注明原文链接:https://www.cnblogs.com/taotieren/p/18458851
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库