- Tailscale สำหรับ Kindle ที่เจลเบรกแล้วเพิ่ม Tailscale SSH พื้นฐาน, พร็อกซีรายแอป และโหมด TUN สำหรับอุปกรณ์บางรุ่น
- บน Kindle ทั่วไป KOReader ไม่สามารถเชื่อมต่อโดยตรงไปยังที่อยู่ tailnet เช่น
100.x.y.zได้ เนื่องจากข้อจำกัดของ โหมด userspace - โหมดพร็อกซีใหม่ให้
tailscaledรับคำขอ SOCKS5·HTTP CONNECT บนพอร์ตภายในเครื่อง แล้วส่งต่อไปยังโหนด tailnet อื่น เช่น Calibre, Wallabag - ปลั๊กอิน KOReader แยกต่างหากจะสร้างอินเทอร์เฟซพร็อกซีที่จำเป็นสำหรับการเข้าถึงเซิร์ฟเวอร์คอนเทนต์โดยอัตโนมัติ ไม่เฉพาะบน Kindle แต่รวมถึง Kobo และ PocketBook ด้วย
- เนื่องจากเป็นโค้ดชุมชนสำหรับสภาพแวดล้อมเจลเบรกที่ไม่เป็นทางการ จึงมี ความแตกต่างด้านความเข้ากันได้ตามอุปกรณ์ และต้องติดตั้งกับตั้งค่าด้วยตนเอง
วิธีเชื่อมต่อใหม่ของ Tailscale บน KUAL
- ไคลเอนต์เดิมก็สามารถลงทะเบียน Kindle เข้า tailnet เพื่อเข้าถึงผ่าน Tailscale IP หรือเชื่อมต่อด้วย SSH ได้ แต่ไม่สามารถ route ทราฟฟิกทั้งหมดของอุปกรณ์ผ่าน tailnet ได้
- บน Kindle ที่เจลเบรกแล้ว โดยทั่วไปจะใช้ userspace networking ทำให้ไม่สามารถใช้ โหมด TUN ซึ่งเป็นชั้น routing เครือข่ายของตัวอุปกรณ์เองได้
- แม้ KOReader จะร้องขอการเชื่อมต่อไปยัง
100.x.y.zแต่ Kindle OS ไม่มีเส้นทางไปยัง Tailscale IP นั้น การเชื่อมต่อจึงหลุด
- แม้ KOReader จะร้องขอการเชื่อมต่อไปยัง
- อัปเดตแอป KUAL ของ greywolf1499 เพิ่มหลายโหมดเพื่อหลีกเลี่ยงข้อจำกัดนี้
- เริ่ม Tailscale ในโหมดพร็อกซี แล้วตั้งค่าที่อยู่พร็อกซีของ KOReader เป็นต้น เป็น
127.0.0.1:1055 tailscaledที่รออยู่บนพอร์ต 1055 จะรับคำขอแล้วส่งต่อไปยังอุปกรณ์ tailnet เครื่องอื่น- รองรับทั้ง SOCKS5 และ HTTP CONNECT จึงเลือกวิธีที่เหมาะกับแอปได้
- เริ่ม Tailscale ในโหมดพร็อกซี แล้วตั้งค่าที่อยู่พร็อกซีของ KOReader เป็นต้น เป็น
- Tailscale SSH ถูกเปิดใช้เป็นค่าเริ่มต้น จึงไม่จำเป็นต้องเปิด USBnetworking SSH แยกต่างหากที่ใช้ชื่อผู้ใช้และรหัสผ่านเริ่มต้นซึ่งเดาได้ชัดเจน
- Kindle บางรุ่นสามารถใช้ โหมด TUN เต็มรูปแบบ เพื่อใช้งาน Tailscale networking ในระดับอุปกรณ์ได้
- เมื่อใช้พร็อกซี สามารถทำงานต่อไปนี้ได้
- เชื่อมต่อกับเซิร์ฟเวอร์ Calibre หรือ Wallabag
- เข้าถึง Audiobookshelf จาก KOReader
- ซิงค์ความคืบหน้าการอ่านระหว่างอุปกรณ์ด้วย Readest
- เชื่อมต่อ RSS reader ของ KOReader กับ เซิร์ฟเวอร์ฟีดที่โฮสต์เอง
- เข้าถึงแดชบอร์ดและเว็บเพจแบบเรียบง่ายจากเบราว์เซอร์ Kindle
- SSH เข้าอุปกรณ์ใน tailnet ด้วยคีย์บอร์ด Bluetooth และ kterm
ปลั๊กอินเฉพาะสำหรับ KOReader
- ปลั๊กอิน Tailscale KOReader เป็นทางเลือกสำหรับผู้ใช้ที่ไม่ต้องการฟีเจอร์ Tailscale นอก KOReader
- ต่างจากแอป KUAL ตรงที่ไม่ได้ทำให้อุปกรณ์เองสามารถถูกเข้าถึงจาก tailnet ได้
- แต่จะสร้าง อินเทอร์เฟซพร็อกซี ที่จำเป็นให้ KOReader เชื่อมต่อกับเซิร์ฟเวอร์คอนเทนต์โดยอัตโนมัติ
- ทดสอบแล้วบน Kindle PW5·PW6, Kobo และ PocketBook
- Kindle รุ่นปกติรุ่นที่ 11 ขณะนี้มี ปัญหาความเข้ากันได้ จึงยังไม่ได้ยืนยันว่าทำงานได้ตามปกติ
- การติดตั้งและตั้งค่าดำเนินการตามลำดับดังนี้
- คัดลอกปลั๊กอินไปยังไดเรกทอรีปลั๊กอินของ KOReader
- เรียกใช้
Install/Update Tailscaleจากเมนู KOReader - คัดลอก คีย์ยืนยันตัวตนของ Tailscale ไปยังไดเรกทอรีที่กำหนด แล้วเปิดใช้ Tailscale จากเมนู
- ตั้งค่าพร็อกซีของ KOReader เป็น
127.0.0.1:1055สำหรับ SOCKS5 หรือ127.0.0.1:1056สำหรับ HTTP CONNECT - ใส่ Tailscale IP ของเซิร์ฟเวอร์ที่จะเชื่อมต่อในปลั๊กอินอื่น
- ปลั๊กอินนี้ยังสามารถใช้ร่วมกับ ปลั๊กอิน SyncThing สำหรับ KOReader ได้
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
KOReader เป็นอินเทอร์เฟซโอเพนซอร์สที่ยอดเยี่ยมซึ่งติดตั้งได้บนเครื่องอ่านอีบุ๊กส่วนใหญ่ ตอนแรกกังวลว่าแบตเตอรี่ Kobo จะหมดเร็ว แต่ก็ไม่มีปัญหาอะไร และปรับแต่งได้ไม่รู้จบตามต้องการ จนรู้สึกเหมือนมาถึงจุดสูงสุดของความสะดวกในการอ่านแล้ว
ถ้าใช้เครื่องอ่านอีบุ๊กอยู่ ขอแนะนำอย่างยิ่ง และขอบคุณคนที่พัฒนาและดูแลโดยไม่ได้รับค่าตอบแทน
ผมลองใช้ระหว่างเที่ยวบินไกลเพื่อแก้ปัญหาการแสดงผลของหนังสือจาก Project Gutenberg แต่แค่หาเมนูปิดการตัดคำด้วยยัติภังค์ก็ใช้ไปราว 10 นาทีแล้ว และแม้เข้าเมนูที่ถูกก็ยังมีตัวเลือกเป็นสิบ ๆ รายการกระจายอยู่ 1–3 หน้า ในขณะที่ตัวอ่านพื้นฐานของ Kobo รวมการตั้งค่าที่ต้องใช้ไว้ในตำแหน่งแรกที่คาดเดาได้
เป็นรสนิยมส่วนตัว แต่ผมชอบรูปแบบไลบรารีแบบหน้าหลักของ Kobo หรือ Kindle มากกว่า หน้าจอ file explorer
หน้าหลักใช้ BookShelf, การตั้งค่าส่วนหัวและท้ายหน้าใช้ BookEnds และยังใช้ KOAssistant ที่ส่งข้อความที่เลือกไปยังโมเดลภาษาขนาดใหญ่เพื่อให้อธิบาย แปล หรือทำคำสั่งที่กำหนดเองอยู่ด้วย เวลาเลือกสำนวนเก่า ๆ หรือศัพท์เดินเรือที่ไม่คุ้นในชุด Horatio Hornblower แล้วกด
Explainก็ได้คำตอบบน Kindle ภายในไม่กี่วินาที ใช้เหมือนพจนานุกรมได้ผมใช้ BookOrbit จัดการความคืบหน้าการอ่าน หมายเหตุ และอีบุ๊ก และใช้ Claude ตั้งค่าหน้าจอ e-ink ที่ใช้ ESP32 ให้สลับแสดงข้อความที่ไฮไลต์ใน KOReader นี่คือจุดสูงสุดของ สภาพแวดล้อมการอ่านแบบกำหนดเองที่โฮสต์เอง และขอบคุณเพื่อนร่วมงานที่ชี้ทางนี้ให้
https://liberapay.com/KOReader
ตอนนี้ที่เหลือคือฟีเจอร์อย่าง สไตล์ชีตที่เว้นระยะขอบเนื้อหา เพื่อให้อุปกรณ์เปลี่ยนหน้าภายนอกสำหรับอ่านแบบไม่ต้องใช้มือไม่บังตัวอักษรตรงขอบขวา ถ้ามีใครรู้วิธีช่วยบอกด้วย
สัปดาห์นี้ผม เจลเบรก Kindle Paperwhite รุ่นที่ 7 แล้ว สิ่งที่ไม่พอใจที่สุดคือไม่มีดาร์กโหมด แต่กลายเป็นว่าไม่ใช่ว่าทำไม่ได้ แค่ Amazon เลือกไม่ให้มาเท่านั้น KOReader รองรับดาร์กโหมดได้ไม่มีปัญหา และเร็วกว่า ตอบสนองทันใจกว่าซอฟต์แวร์พื้นฐานของ Kindle มาก
ลูกชายกับภรรยาผมใช้ Paperwhite รุ่นที่ 10 ทั้งคู่ แต่แม้เป็นเครื่องรุ่นเดียวกัน เครื่องของภรรยาเท่านั้นที่มีดาร์กโหมดเพราะความต่างของซอฟต์แวร์ตามช่วงเวลาที่ซื้อ
อีกอย่าง KOReader จัดการ DRM ผ่านปลั๊กอินได้ ทำให้ในที่สุดผมก็ยืมอีบุ๊กจากห้องสมุดได้ อุปกรณ์ อายุ 10 ปี ก็ยังทำงานได้ดีมาก แค่มีซอฟต์แวร์ที่เหมาะสม โดยไม่ต้องซื้อเครื่องใหม่
https://www.amazon.com/gp/help/customer/display.html?nodeId=...
ถึงจุดนี้ก็เกินเกณฑ์แล้ว ถึงเวลา เจลเบรก Kindle แล้วล่ะ วันที่ไม่ได้ทำ vibe coding หรือทำน้อย ผมรู้สึกเหมือนขาดโดพามีนจนใช้เวลากับการดูโพสต์ไร้สาระบน X หรือหาอะไรสักอย่างมากระตุ้นประสาทมากเกินไป
เอาเวลานั้นไปอ่าน รายการ RSS ที่ค้างไว้คงดีกว่า
มีอย่างใดอย่างหนึ่งใน KOReader, SSH, Tailscale ที่ทำให้ อายุแบตเตอรี่ของ Kindle Oasis พังเละเทะ และทำให้รีบูตกับแครชบ่อย ๆ เรื่องนี้เกิดกับการใช้งานเวอร์ชันเก่า ตอนนี้อาจดีขึ้นแล้วก็ได้
แม้เฟิร์มแวร์เก่าของ Kindle จะไม่มี kernel extension ที่ Tailscale ต้องใช้เพื่อสร้างอินเทอร์เฟซเครือข่ายแบบ TUN แต่ก็ทำให้ทำงานได้ระดับหนึ่งในโหมด userspace networking ด้วย
-tun -userspace-networkingจากที่การตั้งค่า Calibre ของ KOReader ชี้ไปที่
localhost:8081ดูเหมือนจะเคยใช้พร็อกซีด้วย ตั้งค่าไว้นานแล้ว แต่ทำได้จริงพูดถึง RSS แล้ว อยากได้คำแนะนำ ฟีดที่เหมาะกับเครื่องอ่านอีบุ๊ก นึกถึงคอนเทนต์แนว r/longreads
ตอนรัน
tailscaledในสคริปต์นี้ ควรเพิ่ม--no-logs-no-supportด้วย แม้ชื่อจะฟังดูชวนตกใจอยู่บ้าง: https://github.com/victoria-riley-barnett/koreader-tailscale...ไม่อย่างนั้น Tailscale จะเก็บ เมทาดาทาเชิงพฤติกรรม เช่น โฮสต์และพอร์ตที่เชื่อมต่อทุกครั้งที่ใช้ Kindle รวมถึงเวลาเริ่มและสิ้นสุดการเชื่อมต่อ: https://tailscale.com/docs/features/logging#opt-out-of-clien...
เนื้อหาการเชื่อมต่อถูกเข้ารหัสก็จริง แต่แค่เมทาดาทาก็บอกอะไรเกี่ยวกับตัวบุคคลได้มากทีเดียว: https://kieranhealy.org/blog/archives/2013/06/09/using-metad...
ผมใช้ Kindle เครื่องแรกมาเกือบ 10 ปีจนแบตเตอรี่บวม เลยซื้อ Kindle มือสองมาและก็พอใจอยู่ ใช้งานดี และพอแชร์หนังสือจากแอปมือถือก็ซิงก์เข้า Kindle ได้ เลยยังไม่อยากเจลเบรก
แต่ผมชอบ Tailscale ดังนั้นอาจต้องซื้อ เครื่องอ่านอีบุ๊กโอเพนซอร์สเต็มรูปแบบ ที่ติดตั้งมันได้แทน
น่าจะมีประโยชน์ถ้า เปรียบเทียบกับเครื่องมือ formal methods ที่มีอยู่ เพื่อให้นักพัฒนาระบุตำแหน่งของ Imiron ได้เร็วขึ้น
ถ้ามีวิธี รัน WireGuard บน Kindle หรือ Kobo ได้ก็คงดี