2023年7月4日 星期二

風櫃嘴-陽金公路一日行

 200811062031

同事與我單車環島將屆周年,在這一年內,南征北討,騎過南橫、中橫、北橫,偏偏北部單車聖地--風櫃嘴沒有騎過。因此找了個休假相約去騎。

風櫃嘴是外雙溪到萬里的萬溪路的最高點,路上的標示牌是 "風櫃口"。

與騎過的各種路線相較,風櫃嘴的坡度並非特別難,只有其中幾段比較陡些。

不過自己與同事的實力差別太大,同事約40分鐘騎到,我則多花了一倍的時間。雖然不是假日,來騎車的人不多,可是來的都是高手,在路上,被好媿位騎公路車的超過,就看他們一直猛踩,一下子背影就不見了。

在風櫃嘴喝杯咖啡,促進經濟消費。然後下到萬里,在野柳路上照幾張相片,再到金山吃中飯。

吃完中飯,上陽金公路,在路邊的公車亭喝個飯後冷飲,再小睡一番。
睡飽上路,就請同事先走,不要等我,直接回家。這樣我可以慢慢騎,彼此沒有壓力。
上了陽明山後,因雲氣甚多,整個路都被霧籠罩,視野僅數公尺,看不到漂亮風景,實在可惜。

爬坡爬了好久,到最高點,已超過五點,將要天黑。

回到家 (萬隆),是晚上七點,離早上七點出發,滿十二個小時,里程近100公里。

大家資質都差不多, 肯做就有成果

 200809071435

老師說, 「大家資質都差不多, 肯做就有成果」 --- 那是在說我資質不好嗎??

某天,在學校 meeting 結束後,老師離開前,突然冒出上面的那句話。在場的同學,大家不禁都懷疑,老師是不是覺得自己的資質不怎麼樣,要再努力點,多做嘗試,自然會有成果。

想來大家真的是多心了,做研究真的是要花心思,而且要動手作,在作的過程,自然會有靈感。

此外,也真的要給自己訂個時間表,不然,稍微一拖延,一年又過了,真的是很讓人心慌。

== 後記 ==
直到 2012 年,我才有了第一篇發表的 paper。到了 2013 年暑假,則被 ACM 的雜誌接受另一篇 paper。2013,博班的第十年,真是漫長的博士之路。

2023年6月28日 星期三

回收 3D 印表機零件機摘要

花了2千元回收一台網友組裝失敗的 3D 印表機套件,目前還不知道要做什麼,先記錄一下套件的摘要,知道有那些東西,可以怎麼用它。

淘寶的連結 成品mb结构3d打印机fdm打印机高精度 diy套件高精度热床300 200,怕產品下架,留一些擷圖備份。安裝說明 0-12864屏幕按照(3d打印机),沒有安裝文件。


300x300 的套件,1780 RMB,約台幣 9千元,不便宜。嗯,我裝的第一台 300x300 corexy 雙Z軸機器,也是這價格。買的人還不少,頁面說明做得好吸引人? 

是 XY,不是 corexy,有點怪異,類似 Ender-5 S1 的架構。

打印速度不快,相對 Voron 2.4 而言。

雙 Z軸,XY線軌,近程擠出,是其特色。速度不快,噪音也就不大。但 MKS Gen-L V1.0 是8位元CPU,快不起來,再則使用 A4988,只有 16細分,快起來也無法太安靜。









收到時的概況,沒有使用晶格玻璃,直接在熱床上印,有點怪怪的,我沒這樣做過。線軌生鏽的很嚴重,2月才買的,可能組裝時手碰到,又沒有上油保養。

用不鏽鋼白鐵客製化了很多零件,讓成本增加不少,但收到也不能使用。

考慮改成 VORON Trident,但想改用交流熱床,不用花錢買高功率的電源,很花錢。另外,是否改成 8mm鋁板呢? 再想想吧。




2023年6月20日 星期二

ASUS ZenFone 3 解鎖 FRP 及 ROOT

從小孩接收一台華碩手機,ZenFone 3 Deluxe 5.5,想裝 Klipper 來玩看看。

  • Marketing Name: ZenFone 3 Deluxe 5.5
  • Model no: Z01FD
  • Model Name: ZS550KL
  • SW code: Z018
  • CPU: Qualcomm Snapdragon 625
  • RAM/ROM: 4G/64G
  • Battery: 3000 mAh
  • OS: Android 8

拿到手機後,經歷一番波折才拿到手機的掌控權,然後在 root 這關卡住,大概只能當普通手機看影片了。

解鎖 FRP

現代手機為了怕別人撿到據為己有,有所謂的 FRP (Factory Reset Protection) 鎖,只能用原來登入的帳號重置手機。不想再麻煩小孩幫忙,看看有什麼辦法來解鎖。

找了幾個方法,大概這個比較單純,Asus ZenFone 3 Z017DB Gmail Bypass And Frp Reset Eazy Solution。有些辦法使用到的部分,Google 直接把相關部分改掉,如語音協助的 YouTube 就被拿掉了。可以想像未來會更難繞過這關的,還好這台手機花了幾小時就成功進法了。

重置後,一直進行到連上網路,要輸入帳號為止

回頭到最前面,選語言的步驟,按音量減小+電源,擷圖,分享,長按 Mail 的圖示,顯示 App Info,然後 按 help,想辦法找到有 YouTube 的解說,再從 YouTube 開啟 Chrome,再下載解鎖的 APP,安裝後,把自己的 帳號加進去,然後重開,就 OK 了。

改完後重開,到後面就會出現這個畫面,已經把自己加進去了。


ROOT

原來官方有提供 unlock 工具,但早就不提供支援了,因為要透過網路上傳資料後才會進入解鎖,所以官方解鎖這條路可以直接放棄,別到處找相關的 APK,除非要參考它自己改。

有一些 platform tool 可以下載來用,提供 adb 和 fastboot 指令,在 Linux 下使用比較方便。

[root]ASUS ZenFone3 Deluxe ZS550KL (Z018) WW_V24.40.140.33(Android N)for WW SKU only*,Prerequisite: Unlocked bootloader -- 這關過不去。

bootloader 官方解鎖程式 -- 不支援了,別費心找了。使用時會出現錯誤訊息,"發生未知的錯誤,可能是網路連線問題" ("An unknown error occurred, which may be a network connection issue please try again later."),無法解鎖。說明中提及會送出 IMEI 號碼回 ASUS,可能是它的伺服器不存在了吧,程式就無法使用了。

給老手的 Zenfone 3 刷機快速上手(Bootloader, Recovery, Root, Rom…),看看吧,提供一些概念。

How to Unlock Bootloader Asus ZenFone 3 Deluxe ZS550KL with Fastboot Method,看看就好,指令不支援,"OEM unlock" 沒有打開是不能執行這指令的。 

參考 android 的說明,Locking/Unlocking the Bootloader,"OEM unlocking" 一般放在開發者選項,但很多手機,包括華碩,把它藏起來,無法改。

Devices should deny the fastboot flashing unlock command unless the get_unlock_ability is set to 1. If set to 0, the user needs to boot to the home screen, open the Settings > System > Developer options menu and enable the OEM unlocking option (which sets the get_unlock_ability to 1). After setting, this mode persists across reboots and factory data resets.

【密技】ZenFone 2 Laser (ZE500KL/Z00ED) 非官方解鎖 Unofficial Unlock Bootloader,有一些東西可以參考,但也不能直的使用。

下面是用 fastboot 測試的一些結果。

-----------------------
$ sudo ./fastboot oem device-info
(bootloader)    Device tampered: false
(bootloader)    Device unlocked: false ---- 這一關過不去
(bootloader)    Device critical unlocked: false
(bootloader)    Charger screen enabled: false
(bootloader)    Display panel: 
(bootloader)    Sysconf ssn: G9AZCYABCDED2KEZ
(bootloader)    Sysconf adb enable: 0
(bootloader)    Sysconf reboot reason: 0
(bootloader)    Sysconf isn: N0CY1234MB0037410
OKAY [  0.094s]
Finished. Total time: 0.094s

$ sudo ./fastboot boot twrp-3.2.3-0-Z018-20181014.img
Sending 'boot.img' (35238 KB)    OKAY [  0.962s]
Booting                          FAILED (remote: 'unlock device to use this command')
fastboot: error: Command failed

$ sudo ./fastboot flash recovery recovery.img 
Warning: skip copying recovery image avb footer (recovery partition size: 0, recovery image size: 36083712).
Sending 'recovery' (35238 KB)    OKAY [  0.973s]
Writing 'recovery'               (bootloader) is_partition_need_check.
FAILED (Status read failed (No such device))
fastboot: error: Command failed
--------------------------

-----------------------
$ getprop sys.oem_unlock_allowed     => 0
$ getprop ro.oem_unlock_supported  => true
--------------------------

折騰了好幾天,確定 root 的必要步驟。1. 要用 fastboot 寫入 twrp,必須要 unlock bootloader;2. 要 unlock bootloader,必須要用 twrp 安裝 ZIP 檔來設定 "OEM unlocking"。這是一個 dead lock,無解,再慢慢找解法吧。

猜想原來的 APP 是要把手機資料上傳後,再將 unlock 的 flag 設成 true。這動作在別的手機原來是可以在開發者選項完成,但華碩把這選項藏起來,讓使用者要走這一段冤枉路,另外因為全世界用的人太少,根本就沒人幫忙破解,以後再也不碰華碩的手機了。

看來我需要工具: Android APK反编译就这么简单,Android App 逆向入門之一:拆開與重組 apk,有空再來慢慢練功吧。


UNLOCK/RELOCK BOOTLOADER UNOFFICIALLY for ZenFone 3,只有 ZE520KL/ZE552KL的。

https://addrom.com/stock-raw-rom-for-asus-zenfone-3-deluxe-zs550kl/


慘,裝成台積電專用機

想要 unlock bootloader,看到 TSMC 的 raw 檔,以為是 TSMC 的測試機,結果是它的專用機,把很多功能都刪了,要連上伺服器登入後才能使用。更慘的是,不能重刷成一般手機,完全不能清除 userdata 和 aboot,真的變成 TSMC 磚塊了。 


https://github.com/Giovix92/EDLUnlock

https://www.cpu-panda.com/zh-tw/cpu-qualcomm_snapdragon_625#google_vignette

https://forum.xda-developers.com/t/fastboot-edl-unbrick-asus-zenfone-max-m1-asus_x00pd-ww_x00pd-zb555kl-zb556kl.3874245/

https://alephsecurity.com/2018/01/22/qualcomm-edl-1/

https://forum.xda-developers.com/t/hard-unbrick-edl-cable-diy-unbricking-a-hard-bricked-zenfone5-live-qualcomm.3915137/

2023年6月17日 星期六

Klicky probe 設定

由於這不是 Voron 或 Klipper 的官方作法,因此未包含在官方文件裡,每次都找不到。

說明的網址 Klipper plugin for self-calibrating z-offset,設定和原理解說的章節 How To Configure It

好快就忘了怎麼設

指令 CALIBRATE_Z

下面整段把它抄過來,方便參考

Switch Offset

The "z_calibration:switch_offset" is the aforementioned offset from the switch body (which is the probed position) to the actual trigger point above it. A starting point for this value can be taken from the datasheet of the Omron switch (D2F-5: 0.5mm and SSG-5H: 0.7mm). It's safe to start with a little less depending on the squishiness you prefer for the first layer (for me, it's about 0.46 for the D2F-5). So, with a smaller offset value, the nozzle is further away from the bed! This value cannot be negative.

For example, the datasheet of the D2F-5:

d2f-example

And the calculation of the offset base:

offset base = OP (Operation Position) - switch body height
     0.5 mm = 5.5 mm - 5 mm

How About A Negative Switch Offset?

First of all, there cannot be a negative switch_offset! If the switch_offset is already really small after tuning it and the nozzle is still too close to the bed, then something is wrong with the measurement of the probe body. The following picture illustrates this:

negative-switch-offset

Therefore, please check your endstop, the rod of the endstop and the position of the switch body touching the endstop!

exclamation Please, do NOT drive the endstop pin on the switch actuator directly! Otherwise, you do it at your own risk and I will reject any request for support!

If you do so, a correct or at least a working measured height at the switch is all due to the various forces in the system. But forces can change for many reasons. The best case is that the actuator is pushed all the way in until the pin touches the body of the switch - before the endstop is triggered! But it could be anything in between... So, there is no reason not to touch the body directly in a safe and robust way +1

手動校準距離

透過 Klippy probe 與噴嘴和 endstop 的相對位置,可以自動算出噴嘴的位置,完全不用手動調平。

再來要使用 TESTZ 指令來校準 switch_offset,參考 Klipper - Bed leveling。依據 Omron D2F-5 的規格計算或測量得到的 switch_offset,並不太準,間隙可能過大或過小。使用 TESTZ 指令調到噴頭和平台的距離約等於一張紙的厚度。

----------------------
QUAD_GANTRY_LEVEL
CALIBRATE_Z

G90   # 絕對座標
G1 X125 Y125
G1 Z1

MANUAL_PROBE    => Starting manual Z probe. Use TESTZ to adjust position.
TESTZ Z=0       =>  Z position: ?????? --> -2.280 <-- ??????

## - 降低,+ 升高 
TESTZ Z=-.1
TESTZ Z=+.2   ---> 調到紙稍微卡
----------------------


換加熱棒後,瓦數不同的話,要重新校正一下 PID 參數
----------------------
# 先移到適當位置
PID_CALIBRATE HEATER=extruder TARGET=240
----------------------




2023年6月16日 星期五

紅米 Note 3 安裝 Klipper

重要提醒

要 root 手機,必須 unlock bootloader,新的手機大都不允許,或是要申請允許才行。全世界比較少人使用的手機,如 Asus,是不太可能 root 的,直接放棄比較快。

舊手機,開啟 developer option 後,直接就可以開啟 oem unlock,這是最好處理的了。所以,儘可以找舊手機來裝。

這次買到的紅米 Note 3,算是運氣好,剛鎖掉,還可以進 EDL 模式,刷可以 oem unlock 的 firmware。

參考 

  • d4rk50ul1 / klipper-on-android
  • How to Run Linux on Android Devices
  • https://www.makeuseof.com/tag/take-control-android-rooting-guide/
  • Install a Custom Android ROM: https://lineageos.org,需解鎖 Bootloader,必須申請才可以,放棄吧。
  • https://www.xda-developers.com/how-to-install-twrp/
  • https://blog.csdn.net/double_sweet1/article/details/84798144,進入 [關於手機],在 [MIUI 版本] 上點 7次。然後回到上一層,進入 [更多設定],再進入 [開發者選項],開啟 [USB 偵錯]。
  • 刷其它的,不知能不能開機。https://technext1.wordpress.com/2017/04/09/02/,https://www.youtube.com/watch?v=f6s_Nl3UFz4

想試試用舊手機安裝 Klipper,應該可以省一點吧,效能可能更好。在蝦皮買的中古機,只說是 "小米3 mi 3w 16G",我也搞不清實際規格。收到時,打開手機電源,相關資訊如圖。

重點摘要: 紅米手機 Redmi Note 3,六核 1.8GHz,RAM 3GB,ROM 32GB。算運氣好,拿到好一點的規格。

卡托差別,左 - 全網通,右 - 雙網通

红米Note 3双网通版搭载了一枚大家熟悉的联发科Helio X10八核处理器,红米Note 3全网通版是用高通骁龙650六核处理器。所以我拿到的是六核的全网通版。另外比較卡托,双网通版不能放置TF卡,全网通版本的其中一个卡槽可以放置TF卡;我的可以,剛買了一張 64GB 的放進去了,好在啊。所以,可以放心刷開放的 image。

【紅米 Note 3 台版重點規格】
  • 採用 Android 5.1.1 Lollipop 作業系統、MIUI 7 操作介面
  • 4G LTE / WCDMA / TD-SCDMA + GSM 雙卡雙待
  • micro-SIM + nano-SIM(SIM2 卡槽可改放 microSD 記憶卡)
  • 機身尺寸 150 x 76 x 8.65mm,重量 164g
  • 5.5 吋 1,920 x 1,080pixels 解析度觸控螢幕、403ppi
  • 內建 Qualcomm Snapdragon 650, 1.8GHz + 1.2GHz 六核心處理器、Adreno 510 GPU
  • 擁有 2GB LPDDR3 RAM / 16GB ROM、3GB LPDDR3 RAM / 32GB ROM 兩種版本
  • 1,600 萬畫素主相機、F2.0 光圈、78 度廣角、雙色溫 LED 補光燈
  • 支援 PDAF 相位對焦技術、1080P Full HD 錄影
  • 500 萬畫素前鏡頭、F2.0 光圈
  • 支援 36 級美顏、1080P HD 錄影
  • 電池容量:4,050mAh(不可拆卸)
  • 支援藍牙 4.1、GPS、A-GPS、GLONASS、紅外線
  • 配備雙矽麥克風
  • 支援指紋辨識

解除帳號鎖定


在試了幾支手機後,發現是好運,才能在紅米 note 3 上安裝 klipper,華碩的手機,連 root 都沒辦法成功。只好在網拍上再找找看同一款式的手機來玩,無意中看到的一支鎖定小米帳號的紅米 note3,只要 200 元,就把它標回來試試。

解法,直接使用 Miko-tool。有了人家寫好的工具,很容易就解開了。要先裝 drvier,可以直接安裝 Miphone.exe。重開到 fastboot 模式,然後切換至另一模式,就可以解開了。

使用 PC 在 REDMI NOTE 3 上安裝 TWRP RECOVERY

參考 https://technext1.wordpress.com/2017/04/09/02/,影片 Redmi Note 3 - How to Root & Install TWRP [Easiest Way],How To Install TWRP Recovery & Root the Redmi Note 3 Pro

刷 Custom ROM,運作不穩定,然後在還原的過程中,把整個系統清除,還原之後,系統資料全都不見了,搞得一團亂,只能慢慢想辦法還原。

下面是 ROOT,裝 TWRP 的步驟。

  1. First of all you have to download a zip file from Here.
  2. Extract these files. To extract if you can use winrar or any software.
  3. (步驟 3~6) You have to disable driver signature in your pc.
  4. Just open your menu. If you are using windows 10 and type cmd and run it as administrator.
  5. Now type "bcdedit/set testsigning on" in the command prompt
  6. Now just press the enter button and restart your pc
  7. (步驟 7~8) Go to the RN3root folder that we extracted.
  8. Double click on the "Miphone.exe" file and install it.
  9. (設定手機) Then on your redmi note 3 go to settings then about phone option
  10. Then go to additional settings turn on enable "oem unlock" and "usb debugging".
  11. Back up all the data if you have any on your phone copies it to your pc.
  12. (步驟 12~20,執行 MiFlash。) Then press [volume down + power] button to boot your phone in fastboot mode.
  13. Now go back to the folder double click on "edl" batch file
  14. Go back to start menu on your pc launch "MiFlash" program.
  15. Now select "kenzo" folder that is present inside RN3root and browse
  16. Select the images folder and click on.
  17. Go to advance settings from Browse option
  18. At "Fastboot Script" select "flash_all.bat" file from kenzo folder of RN3root. (經測試,下面的 radio 選項必須要停在 "Flash all except storage",但沒有對應的 script 檔,這樣才能留下 IMEI 和 MAC 號碼。)
  19. Configure the raw xml, patch xml and flash programmer
  20. Click ok and refresh this flashing process will take 5-10 minutes to complete. (此步驟約 300秒)
  21. (不要關機,接著執行此步驟進入 fastboot。) Now hard reboot the phone to do this do not disconnect the cable just press [volume down +power] button for 10-15 seconds and your phone will boot into fastboot mode.
  22. Now open Unlock folder from RN3root and double click on "Unlock bootloader.bat" file
  23. Now your phone will automatically reboot. (若重複執行,已經 root,則不會自動重開,按 power 鍵久一點重開。執行至此,等於新的空的手機,所以重開會花蠻久的時間。有時甚至十幾分鐘,或者 ... 不知是否開得起來。)
  24. Setup the phone as we normally do.
  25. Again connect your phone to pc and copy "UPDATE-SuperSU.zip" file in your phone storage (Internal).
  26. Now powers off your device once again boot your device into fastboot mode again by [volume down + power] button.
  27. Go to the flash TWRP folder and click on "Flash TWRP.bat" file you have installed TWRP now.
  28. Change the language of TWRP because by default its Chinese by pressing third right button (as its Chinese you will not understand then tap on globe icon and select English)
  29. Go back on install and select "UPDATE-SuperSU.zip" file that we installed and swipe to flash it.
  30. Your phone is now rooted..!!

刷完後的版本。



https://www.getdroidtips.com/android-11-redmi-note-3/

https://www.getdroidtips.com/lineage-os-18-1-on-redmi-note-3/

https://forum.xda-developers.com/t/rom-port-unofficial-kenzo-kate-11-lineageos-18-stable-25-08-2021.4245525/

https://www.youtube.com/watch?v=fGNKBsRufjI


刷 TWRP 的指令

-----
fastboot flash recovery TWRP.img
fastboot boot TWRP.img 
-----

設定不見了

慘,手機的資訊全變成 "不明",看看要如何救。參考連結,

討論: How To Fix Imei, Wifi Mac, Bluetooth Mac, Meid and Othes Redmi Note3 Snapdragon,Changing/Spoofing MAC Address[Solved]

回復 QCN 的步驟: [GUIDE] Backup, edit and restore QCN. Fixing lost IMEI.

參考此說明回復 EFS: RESTORE EFS ON REDMI NOTE 3 (SNAPDRAGON VARIANTS ONLY),重點整理。

  • 假如 IMEI 和 Baseband 顯示 "不明" (unknown),才是 EFS 被刪掉或損毀。此時首先需要回復 (recover) EFS,然後修改 IMEI。 
  • If your IMEI is shown as 0, your EFS is safe and probably your IMEI is gone. In that case, don’t recover EFS just change the IMEI number.

需要軟體 EFS Backup[Dump][Kenzo].rar,執行指令

---------
Fastboot flash modemst1 modemst1
Fastboot flash modemst2 modemst2
---------

執行後就會自動產生 MAC address 了。

---------
把 adb 變成 COM
adb shell
su
setprop sys.usb.config diag,adb
---------

前一段安裝 MiFlash 時,裝的 driver 在這裡會不正常,試了好久,弄一個新的 VM 後,才成功連接。

後來重刷小米的 firmware,又神奇的可以找到網路了。重刷的版本是 MIUI Global 8.1,Android 版本 6.01,MEID: 99000709881187,IMEI (卡槽2): 869271026918158,WiFi MAC: 64:cc:2e:b9:ba:16,序號: 8ae0acf1。重複試了好幾次,發現在刷非官方,假如選錯選項就會洗掉手機的資訊。必須要保留原本的 storage 結構才行,不能把整個儲存空間清掉。唉,再次重開,MAC 還是不見了,無法上網。

刷 RN3ROOT 的 image,Android 版本 5.1.1

"MEID碼是每台CDMA手機或通訊平板唯一的識別碼。用於CDMA(電信)制式的手機。MEID的數字範圍是十六進位的,和IMEI的格式類似14位。也就是說,有MEID碼的手機,都支持電信卡,有的手機沒有MEID,只支持移動聯通。"

MEID 沒辦法改,反正能上網,不用打電話,MEID 和 IMEI 就不管了。

安裝 -lineageos

https://lineageosroms.com/kenzo/

https://forum.xda-developers.com/t/rom-9-0-kenzo-lineageos-16-0-unofficial-01-09-2018.3844655/

https://www.getdroidtips.com/lineage-os-18-1-on-redmi-note-3/

要使用用最舊的 twrp-3.0.0 才能成功安裝 lineage-os-18.1,lineage_16.0 則都無法成功開機。假如安裝成功,很快就會進入選單。若轉了十幾分鐘,應該就是失敗了。雖然能成功安裝 lineage-os-18,但安裝 Linux Deploy 時,會出現空間不足,可是我都沒有安裝任何 package。

所以,別再嘗試 lineage-os 了,乖乖刷 RN3ROOT for kenzo 就好了,繼續我的目標 -- 安裝 Klipper -- 才是重要的。

後來再試,使用 twrp-3.3.1-0-kenzo.img 安裝 lineage-os-18.1,只要設定好,重新開機,就能成功安裝 package 了。

Root LineageOS 18.1 using Magisk Manager and TWRP Recovery,使用TWRP 安裝 Magisk,很方便就完成 root,再用 Root Checker 確定已成功 root。下載的 APK,要改名 ZIP,然後用 TWRP 安裝。

安裝 Linux 及 Klipper

參考

  • https://github.com/d4rk50ul1/klipper-on-android
  • ** 主要參考這篇 klipper-on-android
  • https://gist.github.com/RyanEwen/ae81fc48ad00397f1026915f0e6beed9

Debian 的版本

  • 下一代 Debian 正式發行版的代號為 trixie — 測試(testing)版 — 發佈日期尚未確定
  • Debian 12 (bookworm) — 當前的穩定 (stable) 版
  • Debian 11 (bullseye) — 當前的舊的穩定 (oldstable) 版
  • Debian 10 (buster) — 當前的更舊的穩定 (oldoldstable) 版,現有長期支持
  • Debian 9 (stretch) — 已存檔版本,現有擴展長期支持
  • Debian 8 (jessie) — 已存檔版本,現有擴展長期支持

使用 Linux Deploy 安裝時,要選對版本。

手機和工作的電腦不同網段,發現能用 adb shell 連上去,再用 ssh 進入系統,這樣就方便多了。

安裝 KlipperScreen 時,會出現 CMake 版本太低的問題,要自行下載安裝新版的。

---------
wget https://cmake.org/files/v3.15/cmake-3.15.7.tar.gz
tar -xzvf cmake-3.15.7.tar.gz
cd cmake-3.15.7
./bootstrap
make -j2
sudo make install
cmake --version
---------

製作一條帶充電功能的 USB OTG 線。

ThinkPad USB Keyboard with TrackPoint 的 sensitivity 設定

 會用 ThinkPad 筆電的人,可能有不少人是衝著那個小紅點 (Trackpoint) 而作的選擇吧。

不但如此,使用桌上型電腦時,還會花高價,新台幣要三千左右,去買個外接的 USB 鍵盤+小紅點來用。本人就是如此,當年IBM還未這產品時,我也是在那抗議的其中之一。

不過,我習慣使用 Linux,並沒有這產品的驅動程式。其實也沒差啦,還是可以正常使用。只是最近,覺得那個小紅點推得實在很辛苦,造成腕部的傷害,痛得無法打羽球。

在Linux的滑鼠設定中,可以設定加速和閾值,雖然稍有改善,但腕部還是很痛苦,久久沒有改善。

經過努力的搜尋,終於找到可以透過 sysfs 設定 sensitivity。不過,只有Thinkpad筆電才可以,因為它是在i8042的目錄下,那是透過 PS/2 界面的裝置。

原想,自己也可以 HACK 一個 USB 的吧。沒想到,再努力搜尋一下,已有人做了,實在太棒了,有現成的可用。

原來要修改 kernel,但太麻煩了,改進的作法如以下所述。

設定好之後,哇! 輕輕一推小紅點,cursor 跑得像飛的一樣,真是太感動了。

數值越大,推起來越輕鬆,原來的數值是 0,難怪我推得那麼辛苦。

接下來,要開機自動設定,請自行參閱其它文件了。

2013-05-18 補記

應該是用下面這個比較簡單,不用去動到 kernel。
https://github.com/bseibold/tpkbdctl

參考網址:
http://linux-thinkpad.10952.n7.nabble.com/Changing-sensitivity-ThinkPad-USB-Keyboard-with-TrackPoint-td18067.html

使用 python 寫的,在 MAC OS 也可以用,太棒了。

=====================
2013-08-13
可以使用 Python 直接控制

首先要 emerge pyusb

然後透過下列指令找到裝置,確定 idVendor=0x17ef, idProduct=0x6009 符合,最末一碼為 0 是鍵盤,1 是trackpoint。
# ls /sys/bus/usb/drivers/usbhid/1-1.5:1.1
在此目錄下會有一個檔名為  0003:17EF:6009.0004

執行下列指令改變 sensitivity
 # echo 1-1.5:1.1 > /sys/bus/usb/drivers/usbhid/unbind
 # python trackpoint-script.py
 # echo 1-1.5:1.1 > /sys/bus/usb/drivers/usbhid/bind


trackpoint-script.py 內容如下

#pyusb imports
import usb.core
import usb.util

data = [0x4, 0x6a, 0x3, 0xfc, 0x38]
dev = usb.core.find(idVendor=0x17ef, idProduct=0x6009)
dev.ctrl_transfer(0x21, 0x9, 0x304, 0x1, data)


另外,下面的一些資料,可以做為進一步的參考。

Just for anyone not immediately recognizing the usb_control_msg()
parameters:

 0x21  == USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE
 0x9   == HID_REQ_SET_REPORT (assuming the interface class is HID)
 0x304 == report_type + 1 << 8 | report_id
 0x1   == interface number

網誌存檔