2024年11月6日 星期三

Ollama AMD GPU 支援

AMD Radeon RX 6300(gfx1034)為例
本次為官方不支援 LLVM Target

參考

ollama-for-amd

安裝ROCmLibs for HIP SDK 6.1.2

AMD HIP SDK for Windows
官方支援GPU

下載ollama

https://github.com/likelovewant/ollama-for-amd/releases

執行Ollama

於資料夾執行ollama:

ollama serve

AMD Radeon RX 6300 為gfx1034 LLVM Target
回應不支援GPU:

msg="amdgpu is not supported (supported types:[gfx1030 gfx1100 gfx1101 gfx1102 gfx906])" gpu_type=gfx1034 gpu=0 library="C:\\Program Files\\AMD\\ROCm\\6.1\\bin"

下載gfx1034 ROCm

https://github.com/likelovewant/ROCmLibs-for-gfx1103-AMD780M-APU/releases/tag/v0.6.1.2

將rocblas.dll及library 備份後刪除

C:\Program Files\AMD\ROCm\6.1\bin\rocblas.dll
C:\Program Files\AMD\ROCm\6.1\bin\rocblas\library

將下載後的gfx1034 ROCm解壓後放置於
C:\Program Files\AMD\ROCm\6.1\bin\rocblas.dll
C:\Program Files\AMD\ROCm\6.1\bin\rocblas\library

重新執行

執行ollama:

ollama serve

本次已找到適應版本

msg="inference compute" id=0 library=rocm variant="" compute=gfx1034 driver=6.1 name="AMD R

2024年6月14日 星期五

Visual Studio Installer Projects 管理員權限安裝

 View -> 啟動條件->加入啟動條件

Condition:Privileged

Message:[ProductName] requires administrative privileges or elevated privileges.  Setup will now exit.

2024年5月23日 星期四

ssh AllowTCPForwarding 禁用 其他port forwarding方式

 https://unix.stackexchange.com/questions/293304/using-netcat-for-port-forwarding
https://medium.com/notes-and-tips-in-full-stack-development/netcat-with-ssh-port-forwarding-148177b2e850

1.
sudo su
cd
mkfifo pip
nc -l -p 2266 < pip | ssh gw_to_private_net -p 22  "nc 192.168.12.230 22" > pip

 

 

2.

nc -l -p 58888 < pip |ssh gw_to_private_net -p 22 "ncat -l 5555 --proxy-type http ; nc 127.0.0.1 5555" > pip
curl -kv -x 127.0.0.1:58888 https://192.168.123.47:3000/

2024年4月20日 星期六

電力箱配線研究

 

1.先確認電箱進線

住家用電都是單相三線式

火線110-中性線-火線110

兩條火線組合電壓就是220V

中性線接到銅排做使用


注意!!

中性線不可進NFB避免中性線斷路插座變成220V

https://www.youtube.com/watch?v=5bi6XIrCtSU&ab_channel=%E6%B0%B4%E9%9B%BB%E7%88%B8%E7%88%B8


2.中性線與地線

台電電表中性線與地線在一次側相接,

內部電箱二次側不可相接,

獨立兩格銅排地線及中性線,

地線由一次側電表拉線到地線銅排

https://www.courcasa.com/p/7xb

https://www.mobile01.com/topicdetail.php?f=335&t=4027997&p=3


3.漏電斷路器接線

漏電斷路器的機制流入要等於流出

要用漏電斷路器必須要獨立迴路,不可共用地線


漏電斷路器

上方進線接來源火線

下方出現接插座之火線

下方底下還有一個接插座之中性線

捲捲線要接中性線


裝了就跳電?老屋迴路不一定能裝附漏電斷路器|ELCB【水電爸爸】

https://www.youtube.com/watch?v=3qU8ZFtnDMI&t=2s&ab_channel=%E6%B0%B4%E9%9B%BB%E7%88%B8%E7%88%B8

傳統開關常漏電?拆解後發現原因出在這!【水電爸爸】

https://www.youtube.com/watch?v=RD1muujETVI&ab_channel=%E6%B0%B4%E9%9B%BB%E7%88%B8%E7%88%B8


4.線的顏色

通常為

火線-紅色

中性線-白色

地線-綠色

電燈控制線-其他顏色


5.電燈接線

火線接到開關,過開關後在接電燈

避免開關未開電燈線路有電

反方向地線接電燈在接到開關

6.線徑使用

5.5mm絞線(可以跑到25A) 

2.0可耐20A,但安全15A 


冷氣 5.5平方線 220V 2P 20A
插座 2.0平方線 110V 1P 20A

電燈 110V 1P 15A
快速接頭不用焊接線

廚房

漏洞斷路器 1P 20A 專用
冰箱 抽油煙機 1P 15A

https://runasia.com.tw/derrong/specificationeandprice-1.php?id=32


https://www.youtube.com/watch?v=LXShVK7Agkw&ab_channel=%E6%B0%B4%E9%9B%BB%E7%88%B8%E7%88%B8



7.自家配線

廚房

 2.0(5.5)平方線 110V 1P 20A 漏電斷路器(專用迴路)

電器:烤箱、電鍋、氣炸鍋(110V 1550W)、電烤盤


廚房&廁所 插座

 2.0平方線 110V 1P 20A 漏電斷路器(插座迴路)


客廳&主臥

插座

電燈


陽台

5.5平方線 220V 2P 20A

電器:洗衣機、熱水器


老屋換線的現實與理想|電線使用年限|電線走火|用電安全【水電爸爸】

https://www.youtube.com/watch?v=GFqbuVf_r7Q&ab_channel=%E6%B0%B4%E9%9B%BB%E7%88%B8%E7%88%B8

2024年4月7日 星期日

VBA Excle 取消保護

VBA Excle 取消保護

方法1

使用VBA 腳本

Alt +F11
貼上語法執行:

Private Sub VBAPassword()  'The path to the Excel file you want to unprotect
Filename = Application.GetOpenFilename("Excel file (* .xls & * .xla & * .xlt), *. Xls; *. Xla; *. Xlt", , "VBA crack")
If Dir(Filename) = "" Then
MsgBox "No related files found, please reset."
Exit Sub
Else
FileCopy Filename, Filename & ".bak" 'Backup file.
End If
Dim GetData As String * 5
Open Filename For Binary As #1
Dim CMGs As Long
Dim DPBo As Long
For i = 1 To LOF(1)
Get #1, i, GetData
If GetData = "CMG=""" Then CMGs = i
If GetData = "[Host" Then DPBo = i - 2: Exit For
Next
If CMGs = 0 Then
MsgBox "Please set a protection password for VBA encoding ...", 32, "Tip"
Exit Sub
End If

Dim St As String * 2
Dim s20 As String * 1
'Get a 0D0A hexadecimal string
Get #1, CMGs - 2, St
'Get a 20 sixteen string
Get #1, DPBo + 16, s20
'Replace encrypted part code
For i = CMGs To DPBo Step 2
Put #1, i, St
Next
'Add unmatched symbol
If (DPBo - CMGs) Mod 2 <> 0 Then
Put #1, DPBo + 1, s20
End If
MsgBox "File decryption succeeded ...", 32, "Tip"
Close #1
End Sub

Alt +F11
貼上語法執行:

方法2

Sub asd()
newFileName = Left(ActiveWorkbook.FullName, InStrRev(ActiveWorkbook.FullName, ".") - 1)

ActiveWorkbook.SaveAs Filename:=newFileName & "_new" & ".csv" & Extension, FileFormat:=xlCSV, CreateBackup:=False
ActiveWorkbook.SaveAs Filename:=newFileName & "_new" & ".xls" & Extension, FileFormat:=xlExcel8

End Sub

開啟xls檔

方法3

Excel 儲存成.csv 視窗不要關再次儲存成(Excel 97-2003).xls
這時會發現可以取消保護密碼,不用輸入任何值

2024年1月8日 星期一

ChameleonMini-rebooted Compile and Support NTAG21X

  1. ChameleonMini-rebooted 編譯教學並支援 NTAG21X


  2. 若不想編譯請直接跳到第4項,直接下載韌體並更新


  3. 1.下載原始碼

    首先,您需要下載 ChameleonMini-rebooted 的原始碼。您可以透過以下連結獲取:

    ChameleonMini-rebooted 原始碼


  4. 2.安裝 Atmel Studio 7.0

    在進行編譯之前,您需要安裝 Atmel Studio 7.0。您可以透過以下連結下載安裝程式:

    Atmel Studio 7.0 下載


  5. 3.開啟專案並編譯

    • 解壓縮下載的 ChameleonMini-rebooted 原始碼,進入 ChameleonMini-rebooted-master\ChameleonMini-rebooted-master\Firmware\ChameleonMini 資料夾。

    • 開啟 ChameleonMini.cproj 專案檔案。

    • 選擇 Release 模式,然後執行 build 操作。

    • 編譯完成後,您將在 Release 資料夾中找到 ChameleonMini.eep 和 ChameleonMini.hex 檔案。


  6. 4.安裝驅動及更新韌體

    • 下載更新韌體所需的檔案:韌體檔案及更新程式

    • 進入該檔案的 driver 資料夾,對 atmel_usb_dfu.inf 檔案右鍵並選擇安裝,以完成驅動程式的安裝。

    • 執行ChameleonMini-rebootedGUI ->Setting ->Upgrade 進入DFU模式

    • 在 Flashing-Windows 資料夾中,執行 flash.bat 檔案,透過該程式完成更新韌體的步驟。

2023年12月25日 星期一

RSA ANS.1 手動資料填入

 https://mbed-tls.readthedocs.io/en/latest/kb/cryptography/asn1-key-structures-in-der-and-pem/

 

    RSAPrivateKey ::= SEQUENCE {
      version   Version,
      modulus   INTEGER,  -- n
      publicExponentINTEGER,  -- e
      privateExponent   INTEGER,  -- d
      prime1INTEGER,  -- p
      prime2INTEGER,  -- q
      exponent1 INTEGER,  -- d mod (p-1)
      exponent2 INTEGER,  -- d mod (q-1)
      coefficient   INTEGER,  -- (inverse of q) mod p
      otherPrimeInfos   OtherPrimeInfos OPTIONAL
    }
 

 原始資料:

<RSAKeyValue>
    <Modulus>8kssxL1TBONoEV8Kjq+xNYVDKrXmncaUG0TlP2JTsET/slPYu3nbQpt+Ks7JKsBBDuTgB/hlS7THt2TJMDzs1mnD8laa4LWlYA8PDKRuWbtkMzCFqfxsQGmq53kT+KgKAI7QYce8nPS/m99Ta276pUVSntG3ad+s7KFmC1dbxw/sFwXVSBX3TY8QUV8VKls1+9S5qJ/chG2KnXdYNBh9BvajerfZZmc86tLz6qrStm5d/ZaGWvwyO9i6OTiiTOrV5t7YPXFmOVPGyJaiFK9W+XRGEt6DgEslpZgZ4rkvEdfyMEM4+kCq3NrW4iaQa9q0qq7lup8U2+/znqceM6C4dQ==</Modulus>
    <Exponent>AQAB</Exponent>
    <P>9m0ppTX6tY+PnhDrTAz6zvIUMc8866pZodAhTg3lsF3QmH/98wmmzh26jerf/FZtxpg2u1seuGVf+qH06sNyHF04sOv/x0doFbfuksOLNYpNrCIQeE4TE6ii4ccyLXO99xSfbFDhFS7pc2yHYa8D39rXoI/ok+TOvSMmpv1ySm8=</P>
    <Q>+7To5BL7KBLpP1MByH9Yg6v6BkO8yYHVJF6ODJs2/SBRxHOUm4Plm9p8aycfwzxx79X6cAkRX/ixUgXCpHt5+mrv4q5DvSKqJLw3EZh8JDqm67NtAK34Lh3gQ3/RZbJXhIJqE/JmLWh5fdEqFbn7DuymslriBrMHL08LpcYhbVs=</Q>
    <DP>CarQpm2Or065eJ77TBl6QWIXzrhtkGU3bPSoSdKbvyZ/B2yF/uHTDGT4K5caQGD3n4HbK9BwTRWVBVUTMZ6HPHufvLkVaLDxcWCs2E8Zh/ksAOO5N68AapYEBc11t3jB7A6ADpTBr74OZHvOd9OQ2FhSezcKDbs9LQhS/NwWfrs=</DP>
    <DQ>+EEACiLmcCnmvzwhYBypsoRmPtOEWcKh9BMGS0yzOYks3HOauJ+oUMV3PUADRc5SGdiT/vgSmPNyAJIJ3ayjK+dY3dw+l0afRUgVkFcy6ZCnnYUEF01+oA17aVehsYnqY5k1AqNrP5HxcbRgq7kY8ylZaEPW9gCRL4no1QHLak0=</DQ>
    <InverseQ>o8ocxO3xkISM+uWa3IGiSbphUHHGYUBtzFM5nyDOWv+tUqNLbZavv4SvpOemvUbBqDSisnnfbkkLj1L0t7c/2SM1EQC2+Dtdv0OFLx7Spbtsv1oIGLWm0d/vcIs01y0I9hWYuZnMnGzdDXrfsxmP/KbOxGiuXHIQmGgmKJr3Nf8=</InverseQ>
    <D>QNL4EVMN6Rrmdu9UpcQ/xy/2PnEYWFIOwhT2uLSX62sqdg2UyOPbU8DCSrW0gKmbPl7hyYAdqdmeLWTbpvpF6z+02xtsqH4w1rhwsFM16vAF6OQsfsQ4OiuLPA7a1wYuVuPewKptvhiFQzDG4tF4YctgRXmadssPOugboyEmPuVwYKbPSFzQQUPZMEn1/FHj9OztMpqXoDZ626DKJuskJVmV3QaPNeGl2p78yAdNQZAjKGxXn/wPV5TJrco4zN/BRnhBeN8HsSm6X8UzPLpFNkyK04UpCSUG1GKI5zf5lWQb0vbsgpfL2/ouCIgDvw4JrbULMmuIorvL+4rtlesEqQ==</D>
</RSAKeyValue>

private.asn1:

# Start with a SEQUENCE
asn1=SEQUENCE:RSAPrivateKey

[RSAPrivateKey]
version=INTEGER:0
modulus=INTEGER:0xf24b2cc4bd5304e368115f0a8eafb13585432ab5e69dc6941b44e53f6253b044ffb253d8bb79db429b7e2acec92ac0410ee4e007f8654bb4c7b764c9303cecd669c3f2569ae0b5a5600f0f0ca46e59bb64333085a9fc6c4069aae77913f8a80a008ed061c7bc9cf4bf9bdf536b6efaa545529ed1b769dfaceca1660b575bc70fec1705d54815f74d8f10515f152a5b35fbd4b9a89fdc846d8a9d775834187d06f6a37ab7d966673cead2f3eaaad2b66e5dfd96865afc323bd8ba3938a24cead5e6ded83d71663953c6c896a214af56f9744612de83804b25a59819e2b92f11d7f2304338fa40aadcdad6e226906bdab4aaaee5ba9f14dbeff39ea71e33a0b875
publicExponent=INTEGER:0x010001
privateExponent=INTEGER:0x40d2f811530de91ae676ef54a5c43fc72ff63e711858520ec214f6b8b497eb6b2a760d94c8e3db53c0c24ab5b480a99b3e5ee1c9801da9d99e2d64dba6fa45eb3fb4db1b6ca87e30d6b870b05335eaf005e8e42c7ec4383a2b8b3c0edad7062e56e3dec0aa6dbe18854330c6e2d17861cb6045799a76cb0f3ae81ba321263ee57060a6cf485cd04143d93049f5fc51e3f4eced329a97a0367adba0ca26eb24255995dd068f35e1a5da9efcc8074d419023286c579ffc0f5794c9adca38ccdfc146784178df07b129ba5fc5333cba45364c8ad38529092506d46288e737f995641bd2f6ec8297cbdbfa2e088803bf0e09adb50b326b88a2bbcbfb8aed95eb04a9
prime1INTEGER=INTEGER:0xf66d29a535fab58f8f9e10eb4c0cfacef21431cf3cebaa59a1d0214e0de5b05dd0987ffdf309a6ce1dba8deadffc566dc69836bb5b1eb8655ffaa1f4eac3721c5d38b0ebffc7476815b7ee92c38b358a4dac2210784e1313a8a2e1c7322d73bdf7149f6c50e1152ee9736c8761af03dfdad7a08fe893e4cebd2326a6fd724a6f
prime2INTEGER=INTEGER:0xfbb4e8e412fb2812e93f5301c87f5883abfa0643bcc981d5245e8e0c9b36fd2051c473949b83e59bda7c6b271fc33c71efd5fa7009115ff8b15205c2a47b79fa6aefe2ae43bd22aa24bc3711987c243aa6ebb36d00adf82e1de0437fd165b25784826a13f2662d68797dd12a15b9fb0eeca6b25ae206b3072f4f0ba5c6216d5b
exponent1=INTEGER:0x09aad0a66d8eaf4eb9789efb4c197a416217ceb86d9065376cf4a849d29bbf267f076c85fee1d30c64f82b971a4060f79f81db2bd0704d1595055513319e873c7b9fbcb91568b0f17160acd84f1987f92c00e3b937af006a960405cd75b778c1ec0e800e94c1afbe0e647bce77d390d858527b370a0dbb3d2d0852fcdc167ebb
exponent2=INTEGER:0xf841000a22e67029e6bf3c21601ca9b284663ed38459c2a1f413064b4cb339892cdc739ab89fa850c5773d400345ce5219d893fef81298f372009209ddaca32be758dddc3e97469f454815905732e990a79d8504174d7ea00d7b6957a1b189ea63993502a36b3f91f171b460abb918f329596843d6f600912f89e8d501cb6a4d
coefficient=INTEGER:0xa3ca1cc4edf190848cfae59adc81a249ba615071c661406dcc53399f20ce5affad52a34b6d96afbf84afa4e7a6bd46c1a834a2b279df6e490b8f52f4b7b73fd923351100b6f83b5dbf43852f1ed2a5bb6cbf5a0818b5a6d1dfef708b34d72d08f61598b999cc9c6cdd0d7adfb3198ffca6cec468ae5c7210986826289af735ff

轉換指令:

openssl asn1parse -genconf private.asn1 -out private.der

格式轉換

openssl rsa -text -inform DER -in private.der

提取公鑰

openssl rsa -in private-key.pem -pubout -out public-key.pem
 

 

測試:

https://www.devglan.com/online-tools/rsa-encryption-decryption

預測2031/1/1可能 TWCA 憑證 IOS會出現不信任

緣由: TWCA CYBER Root CA 有兩張、兩個效期 (2030、2047年到期) 推測TWCA 預計 2030年12月會停用: TWCA CYBER Root CA (2030 年到期) TWCA Global Root CA 改用啟用: TWCA CYBER ...