硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4269|回复: 5
收起左侧

[PC软件] H7-TOOL PC AUR 包

[复制链接]

49

主题

49

回帖

196

积分

初级会员

积分
196
发表于 2021-6-11 15:00:37 | 显示全部楼层 |阅读模式
由于迟迟不出 H7-TOOL PC Linux 版本写了个 PKGBUILD 将 H7-TOOL PC 打包到 AUR 仓库了
有用 Arch 系得群友可以帮忙验证一下
为了便于区别将 h7toolpc-bin 改名成 h7tool-wine
https://aur.archlinux.org/packages/h7toolpc-wine/

PKGBUILD
  1. # Maintainer: taotieren <admin@taotieren.com>

  2. pkgname=h7toolpc-wine
  3. pkgver=2.0.5
  4. pkgrel=1
  5. pkgdesc="Wine H7-TOOL 的 PC 上位机,支持串口、CAN、示波器、CMSIS-DAP、DS18B20、RTT Viewer、脱机烧录等"
  6. arch=('x86_64')
  7. url="http://www.armbbs.cn/forum.php?mod=viewthread&tid=95468"
  8. license=('unknow')
  9. provides=(${pkgname})
  10. conflicts=(${pkgname} ${pkgname%-wine})
  11. replaces=(h7toolpc-bin)
  12. depends=('wine' 'wqy-zenhei')
  13. 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.")
  14. makedepends=('unarchiver')
  15. backup=()
  16. options=('!strip')
  17. install=${pkgname}.install
  18. source=("${pkgname/pc-wine/PC_release}.zip::http://www.armfly.com/download/H7-TOOL/${pkgname/pc-wine/PC_release}(V${pkgver}).zip"
  19.         "icons.tar.gz"
  20.         "${pkgname}.install")
  21. sha256sums=('13a02cb749bc6e5c69986ee231e0647ed829c5d5247bd77d4509a91093f7e121'
  22.             '6823224b5699dc17c41efdcbc8465554f007cb62cadea0aad9b67c08c5698142'
  23.             '078a64b4818c65daabe24ad31ead1912ee564b15da79084fa1c7d1a004f30cef')
  24. noextract=("${pkgname/pc-wine/PC_release}.zip"
  25.             "icons.tar.gz")

  26. prepare() {
  27.     unar -e GBK "${srcdir}/${pkgname/pc-wine/PC_release}.zip"
  28. }

  29. package() {
  30.     export LC_CTYPE="zh_CN.UTF-8"

  31.     armfly="opt/armfly"

  32.     install -dm0755 "${pkgdir}/${armfly}/${pkgname%-wine}"

  33.     cp -ra ${srcdir}/${pkgname/pc-wine/PC_release}/* "${pkgdir}/${armfly}/${pkgname%-wine}"

  34.     find "${pkgdir}/${armfly}" -type f -exec chmod 644 "{}" \;
  35.     find "${pkgdir}/${armfly}" -type d -exec chmod 755 "{}" \;

  36.     _ftname="wqy-zenhei.ttc"
  37.     install -Dm0644 /dev/stdin "${pkgdir}/${armfly}/${pkgname%-wine}/regpatch.reg" << EOF
  38. REGEDIT4

  39. [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink]
  40. "Lucida Sans Unicode"="${_ftname}"
  41. "Microsoft Sans Serif"="${_ftname}"
  42. "MS Sans Serif"="${_ftname}"
  43. "Tahoma"="${_ftname}"
  44. "Tahoma Bold"="${_ftname}"
  45. "SimSun"="${_ftname}"
  46. "Arial"="${_ftname}"
  47. "Arial Black"="${_ftname}"
  48. "Lucida Sans Unicode"=str(7):"${_ftname}"
  49. "Microsoft Sans Serif"=str(7):"${_ftname}"
  50. "Tahoma"=str(7):"${_ftname}"
  51. "Lucida Sans Unicode"="${_ftname}"
  52. "Microsoft Sans Serif"="${_ftname}"
  53. "Microsoft YaHei"="${_ftname}"
  54. "微软雅黑"="${_ftname}"
  55. "宋体"="${_ftname}"
  56. "新細明體"="${_ftname}"
  57. "DFKai-SB"="${_ftname}"
  58. "FangSong"="${_ftname}"
  59. "KaiTi"="${_ftname}"
  60. "Microsoft JhengHei"="${_ftname}"
  61. "Microsoft YaHei"="${_ftname}"
  62. "MingLiU"="${_ftname}"
  63. "NSimSun"="${_ftname}"
  64. "PMingLiU"="${_ftname}"
  65. "SimHei"="${_ftname}"
  66. "SimKai"="${_ftname}"
  67. "SimSun"="${_ftname}"

  68. [HKEY_CURRENT_USER\Software\Wine\X11 Driver]
  69. "ClientSideAntiAliasWithCore"="N"
  70. "ClientSideAntiAliasWithRender"="N"
  71. "ClientSideWithRender"="N"

  72. [HKEY_CURRENT_USER\Control Panel\Desktop]
  73. "FontSmoothing"="2"
  74. "FontSmoothingType"=dword:00000002
  75. "FontSmoothingGamma"=dword:00000578
  76. "FontSmoothingOrientation"=dword:00000001

  77. [HKEY_LOCAL_MACHINE\Software\Wine\Ports]
  78. "COM1"="/dev/ttyUSB0"
  79. "COM2"="/dev/ttyUSB1"
  80. "COM3"="/dev/ttyUSB2"
  81. "COM4"="/dev/ttyUSB3"
  82. "COM5"="/dev/ttyUSB4"
  83. "COM6"="/dev/ttyUSB5"
  84. "COM7"="/dev/ttyACM0"
  85. EOF

  86.     install -Dm0755 /dev/stdin "${pkgdir}/usr/bin/${pkgname%-wine}" << EOF
  87. #!/bin/bash
  88. export WINEARCH=win32 WINEPREFIX="$HOME/.${pkgname%-wine}/wine"

  89. if [ ! -d "$HOME"/.${pkgname%-wine} ] ; then
  90.     mkdir -p "$HOME"/.${pkgname%-wine}/wine || exit 1

  91.     cp -r /${armfly}/${pkgname%-wine}/app.ini "$HOME"/.${pkgname%-wine} || exit 1
  92.     cp -r /${armfly}/${pkgname%-wine}/Backup "$HOME"/.${pkgname%-wine} || exit 1
  93.     cp -r /${armfly}/${pkgname%-wine}/Readback "$HOME"/.${pkgname%-wine} || exit 1
  94.     cp -r /${armfly}/${pkgname%-wine}/ini "$HOME"/.${pkgname%-wine} || exit 1
  95.     cp -r /${armfly}/${pkgname%-wine}/log "$HOME"/.${pkgname%-wine} || exit 1
  96.     cp -r /${armfly}/${pkgname%-wine}/*.lua "$HOME"/.${pkgname%-wine} || exit 1
  97.     cp -r /${armfly}/${pkgname%-wine}/regpatch.reg "$HOME"/.${pkgname%-wine}/wine || exit 1

  98.     ln -s /${armfly}/${pkgname%-wine}/${pkgname/pc-wine/PC}.exe "$HOME"/.${pkgname%-wine}/${pkgname%-wine} || exit 1
  99.     ln -s -T /${pkgdir}/${armfly}/${pkgname%-wine}/Driver "$HOME"/.${pkgname%-wine}/Driver || exit 1
  100.     ln -s -T /${armfly}/${pkgname%-wine}/EMMC "$HOME"/.${pkgname%-wine}/EMMC || exit 1
  101.     ln -s -T /${armfly}/${pkgname%-wine}/Help "$HOME"/.${pkgname%-wine}/Help || exit 1
  102.     ln -s -T /${armfly}/${pkgname%-wine}/USBBus "$HOME"/.${pkgname%-wine}/USBBus || exit 1
  103.     ln -s -T /${armfly}/${pkgname%-wine}/ChangeLog.txt "$HOME"/.${pkgname%-wine}/ChangeLog.txt || exit 1
  104. fi

  105. if [ ! -f "$HOME"/.${pkgname%-wine}/fontok ] ; then
  106.     touch "$HOME"/.${pkgname%-wine}/fontok || exit 1
  107.     regedit "$HOME"/.${pkgname%-wine}/wine/regpatch.reg && wineserver -k
  108.     wine "$HOME"/.${pkgname%-wine}/Driver/WinUSB/zadig-2.5.exe
  109. fi

  110. wine "$HOME"/.${pkgname%-wine}/${pkgname%-wine} -opengl "$@"
  111. EOF

  112.     install -Dm0644 /dev/stdin "${pkgdir}/usr/share/applications/${pkgname%-wine}.desktop" << EOF
  113. [Desktop Entry]
  114. Name=${pkgname%-wine}
  115. Name[zh_CN]=${pkgname%-wine}
  116. Comment=${pkgdesc}
  117. #MimeType=application/x-${pkgname%-wine};
  118. Exec=${pkgname%-wine} %f
  119. Type=Application
  120. Categories=Development;Tool;
  121. Terminal=false
  122. Icon=${pkgname%-wine}.png
  123. Version=${pkgver}
  124. EOF

  125.     install -Dm0755 /dev/stdin "${pkgdir}/usr/bin/${pkgname/-wine/-old}" << EOF
  126. #!/bin/bash
  127. export WINEARCH=win32 WINEPREFIX="$HOME/.${pkgname%-wine}/wine"

  128. if [ ! -d "$HOME"/.${pkgname%-wine} ] ; then
  129.     mkdir -p "$HOME"/.${pkgname%-wine}/wine || exit 1

  130.     cp -r /${armfly}/${pkgname%-wine}/app.ini "$HOME"/.${pkgname%-wine} || exit 1
  131.     cp -r /${armfly}/${pkgname%-wine}/Backup "$HOME"/.${pkgname%-wine} || exit 1
  132.     cp -r /${armfly}/${pkgname%-wine}/Readback "$HOME"/.${pkgname%-wine} || exit 1
  133.     cp -r /${armfly}/${pkgname%-wine}/ini "$HOME"/.${pkgname%-wine} || exit 1
  134.     cp -r /${armfly}/${pkgname%-wine}/log "$HOME"/.${pkgname%-wine} || exit 1
  135.     cp -r /${armfly}/${pkgname%-wine}/*.lua "$HOME"/.${pkgname%-wine} || exit 1
  136.     cp -r /${armfly}/${pkgname%-wine}/regpatch.reg "$HOME"/.${pkgname%-wine}/wine || exit 1

  137.     ln -s /${armfly}/${pkgname%-wine}/${pkgname/pc-wine/PC(PC V1.44 用于升级V2.00前的固件)}.exe "$HOME"/.${pkgname%-wine}/${pkgname/-wine/-old} || exit 1
  138.     ln -s -T /${pkgdir}/${armfly}/${pkgname%-wine}/Driver "$HOME"/.${pkgname%-wine}/Driver || exit 1
  139.     ln -s -T /${armfly}/${pkgname%-wine}/EMMC "$HOME"/.${pkgname%-wine}/EMMC || exit 1
  140.     ln -s -T /${armfly}/${pkgname%-wine}/Help "$HOME"/.${pkgname%-wine}/Help || exit 1
  141.     ln -s -T /${armfly}/${pkgname%-wine}/USBBus "$HOME"/.${pkgname%-wine}/USBBus || exit 1
  142.     ln -s -T /${armfly}/${pkgname%-wine}/ChangeLog.txt "$HOME"/.${pkgname%-wine}/ChangeLog.txt || exit 1
  143. fi

  144. if [ ! -f "$HOME"/.${pkgname%-wine}/fontok ] ; then
  145.     touch "$HOME"/.${pkgname%-wine}/fontok || exit 1
  146.     cd "$HOME"/.${pkgname%-wine}/wine && regedit regpatch.reg && wineserver -k
  147. fi

  148.     wine "$HOME"/.${pkgname%-wine}/${pkgname/-wine/-old} -opengl"$@"
  149. EOF

  150.     install -Dm0644 /dev/stdin "${pkgdir}/usr/share/applications/${pkgname/-wine/-old}.desktop" << EOF
  151. [Desktop Entry]
  152. Name=${pkgname/-wine/-old}
  153. Name[zh_CN]=${pkgname/-wine/-old}
  154. Comment=Wine H7-TOOL 旧版的 PC 上位机,支持串口、CAN、示波器、CMSIS-DAP、DS18B20、RTT Viewer、脱机烧录等
  155. #MimeType=application/x-${pkgname%-wine};
  156. Exec=${pkgname/-wine/-old} %f
  157. Type=Application
  158. Categories=Development;Tool;
  159. Terminal=false
  160. Icon=${pkgname%-wine}.png
  161. Version=1.44
  162. EOF

  163.     install -Dm644 /dev/stdin "${pkgdir}/etc/udev/rules.d/10-h7tool.rules" << EOF
  164. # Copy this file to /etc/udev/rules.d/ or /usr/lib/udev/rules.d/
  165. # If rules fail to reload automatically, you can refresh udev rules
  166. # with the command "sudo udevadm control --reload"

  167. ACTION!="add|change", GOTO="h7tool_rules_end"

  168. SUBSYSTEM=="gpio", MODE="0660", GROUP="plugdev", TAG+="uaccess"

  169. SUBSYSTEM!="usb|tty|hidraw", GOTO="h7tool_rules_end"

  170. # Please keep this list sorted by VID:PID

  171. # H7-tool
  172. ATTRS{idVendor}=="C251", ATTRS{idProduct}=="F00A", MODE="666", GROUP="plugdev", TAG+="uaccess"

  173. # CMSIS-DAP compatible adapters
  174. ATTRS{product}=="*CMSIS-DAP*", MODE="666", GROUP="plugdev", TAG+="uaccess"

  175. LABEL="h7tool_rules_end"
  176. EOF

  177.     tar -xf "${srcdir}/icons.tar.gz" -C "${pkgdir}/usr/share"
  178. #     install -Dm0644 "${srcdir}/${pkgname%-wine}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname%-wine}/LICENSE"
  179. }
复制代码



h7toolpc-wine.install

  1. # h7toolpc-wine.install
  2. info() {
  3.     echo -e "Wine H7-TOOL 的 PC 上位机,支持串口、CAN、示波器、CMSIS-DAP、DS18B20、RTT Viewer、脱机烧录等"
  4. }
  5. post_install() {
  6.     info
  7. }
  8. post_upgrade() {
  9.     echo "deleting the h7toolpc bottle..."
  10.     find /home -maxdepth 2 -name ".h7toolpc" -exec rm -rf {} \;
  11.     info
  12. }
  13. pre_remove() {
  14.     echo "deleting the h7toolpc bottle..."
  15.     find /home -maxdepth 2 -name ".h7toolpc" -exec rm -rf {} \;
  16. }
复制代码



1.png

2.png

3.png

4.png








评分

参与人数 1金币 +100 收起 理由
eric2013 + 100 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
发表于 2021-6-11 15:06:03 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

23

主题

1406

回帖

1475

积分

至尊会员

积分
1475
发表于 2021-6-11 18:02:11 | 显示全部楼层
整理的很好,给楼主点赞
代码不规范,亲人两行泪!
回复

使用道具 举报

49

主题

49

回帖

196

积分

初级会员

积分
196
 楼主| 发表于 2021-6-12 02:50:31 | 显示全部楼层
本帖最后由 taotieren 于 2021-6-13 01:24 编辑

增加了 ttyUSB 2 COM 和 启动时 USB 注入,还是不能识别 USB 设备。可能是不在一个权限组里面吧
通过 usbview2 查看,USB 设备号是使用的同一个 VID 和 PID 的复合 USB 设备,Linux 下暂时没找到处理办法,后续看情况处理,可能会通过一个 系统 hook 处理,也有可能需要写一个 H7TOOL 的 USB dkms 的内核模块(上 dkms 还不如直接整 H7TOOL 的 Linux 版本(雾)
回复

使用道具 举报

49

主题

49

回帖

196

积分

初级会员

积分
196
 楼主| 发表于 2021-6-13 01:41:32 | 显示全部楼层
由于在 Linux 上传图片有问题,图片发到这边了:https://blog.csdn.net/taotieren/article/details/117858995
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
发表于 2021-6-13 10:08:35 | 显示全部楼层
taotieren 发表于 2021-6-13 01:41
由于在 Linux 上传图片有问题,图片发到这边了:https://blog.csdn.net/taotieren/article/details/1178589 ...

谢谢分享,楼主位补了几张。

网络版能用也行。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-4 15:57 , Processed in 0.224102 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表