นี่คือโครงการ Firmware Firmware (CFW) ของ Q3K สำหรับโมเด็ม Draytek Vigor 167 VDSL ของเขา
ก่อนที่เราจะไปไกลกว่านี้จะต้องระบุบางสิ่ง:
เฟิร์มแวร์ที่กำหนดเองขึ้นอยู่กับเฟิร์มแวร์เวอร์ชัน 5.0.1 ของโมเด็ม Draytek Vigor 167 VDSL พร้อมการแก้ไขต่อไปนี้:
คุณจะต้องมี Nix หรือ Nixos
$ # Build everything. This will take a bit on first run, as a bunch of
$ # toolchains for MIPS must be built...
$ export NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1
$ nix-build -A cfw
/nix/store/v7ihha3j4j2swz3ildaylz9vqaqrl78r-vraytek-custom-518f426f
$ # Note: your hash will differ, as it's based on the Git revision of this
$ # repository at build time.
$ ls /nix/store/v7ihha3j4j2swz3ildaylz9vqaqrl78r-vraytek-custom-518f426f
v167_cfw518f426f.all
$ # Note: your firmware name will differ, as it contains the Git revision
$ # of this repository at build time.
เมื่อคุณมีไฟล์เฟิร์มแวร์เช่น v167_cfw518f426f.all
สามารถอัปโหลดไปยังเว็บอินเตอร์เฟสภายใต้การบำรุงรักษาระบบ -> เฟิร์มแวร์
หลังจากติดตั้งและรีบูตเครื่องเฟิร์มแวร์ใหม่คุณควรจะสามารถ SSH เป็นผู้ดูแลระบบลงในโมเด็มโดยใช้รหัสผ่านเดียวกับแผงเว็บ
$ ssh [email protected]
[email protected]'s password:
_ __ ______ __ ___ _
| | / /______ ___ _/_ __/__ / /__ / _ (_)__ ____ ____
| |/ / __/ _ `/ // // / / -_) '_/ / // / / _ `/ _ / __/
|___/_/ _,_/_, //_/ __/_/_ /____/_/_, /___/_/
/___/ CFW, git rev 518f426f /___/
# uname -a
Linux draytek 3.18.21 #4 SMP Fri May 7 16:22:06 CST 2021 mips unknown
สำหรับการรับรองความถูกต้องของคีย์สาธารณะให้เพิ่มคีย์ผู้ดูแลระบบ SSH ในแผงเว็บในการบำรุงรักษาระบบ -> บัญชี -> คีย์สาธารณะ SSH คุณจะต้องป้อนรหัสผ่านปัจจุบันของคุณและรหัสผ่านใหม่สองครั้ง (อาจเหมือนกับรหัสผ่านที่มีอยู่) ควบคู่ไปกับรหัสสาธารณะ SSH เพื่อบันทึก นี่เป็นเพราะพฤติกรรมของแบบฟอร์มรหัสผ่านถูกนำไปใช้ในเว็บอินเตอร์เฟส
ปัจจุบันเฟิร์มแวร์แบบกำหนดเอง 'แบบจำลอง' เท่านั้นที่สร้างขึ้นโดยที่เก็บนี้ซึ่งกำหนดไว้ใน default.nix กระตุ้นให้ไฟล์นี้ (โดยเฉพาะ 'สคริปต์') เพื่อเพิ่มการแก้ไขของคุณเอง มันควรจะเป็นเอกสารที่ดีพอที่จะเข้าใจว่าเกิดอะไรขึ้นและทำไม
ในอนาคตอาจเป็นไปได้ที่จะนำเข้าพื้นที่เก็บข้อมูลนี้ไปยัง Nix ที่ได้มาอื่นและขยาย (ซึ่งสามารถทำได้บ้างโดยใช้ MakeCustomFirmware ของ LIB.NIX แต่นั่นหมายความว่าคุณต้องทำการปรับเปลี่ยนการแก้ไขพื้นฐานทั้งหมดตามค่าเริ่มต้น)
ที่เก็บนี้มีเฉพาะซอร์สโค้ดที่ได้รับอนุญาตภายใต้ใบอนุญาตโอเพ่นซอร์ส (ใบอนุญาต MIT ดูการคัดลอก) สิ่งนี้ไม่ได้ทำให้ซอฟต์แวร์โอเพ่นซอร์สบิลด์สร้างผลลัพธ์
เฟิร์มแวร์ Draytek ดั้งเดิมเป็นซอฟต์แวร์ที่เป็นกรรมสิทธิ์ที่ไม่ได้แจกจ่ายภายใต้ใบอนุญาตโอเพ่นซอร์ส ฉันไม่มีสิทธิ์ใด ๆ ในการแจกจ่ายซ้ำและอาจไม่เป็นเช่นนั้น เฟิร์มแวร์ที่กำหนดเองที่สร้างโดยรหัสในที่เก็บนี้มาจากเฟิร์มแวร์ดั้งเดิมนั้น เพื่อให้ชัดเจนพื้นที่เก็บข้อมูลนี้ไม่ได้มีเฟิร์มแวร์ดั้งเดิมหรือเฟิร์มแวร์ที่กำหนดเองเพียงแค่รหัสซึ่งจะเมื่อทำงานจะสร้างเฟิร์มแวร์ที่กำหนดเอง
นอกจากนี้เฟิร์มแวร์ Draytek ดั้งเดิมที่ดูเหมือนจะมีรหัสที่รวบรวมได้เดิมที่ได้รับอนุญาตภายใต้ใบอนุญาต Copyleft เช่น GPL และไม่มีรหัสแหล่งที่มาของจดหมายโต้ตอบในเวลาที่เขียน ซึ่งหมายความว่าการแจกจ่ายเฟิร์มแวร์อาจไม่เพียง แต่จะละเมิดสิทธิ์ของรหัส Draytek ที่เป็นกรรมสิทธิ์ แต่ผู้เขียนสิ่งที่ดูเหมือนจะแจกจ่ายรหัสใหม่ภายใต้ใบอนุญาตลอกเลียนแบบเหล่านี้
โดยรวมแล้ว Firmwares ที่กำหนดเองเป็นพื้นที่สีเทาตามกฎหมายและคุณควรทำวิจัยของคุณเองเกี่ยวกับความกังวลของคุณผู้ใช้ที่มีศักยภาพของสิ่งที่สร้างโดย codebase นี้
เมื่อพิจารณาจากข้างต้น จะไม่มีการสร้างไบนารีของเฟิร์มแวร์ที่กำหนดเอง คุณต้องสร้างทุกสิ่งด้วยตัวเองและทำวิจัยทางกฎหมายของคุณเองว่าสิ่งที่คุณทำนั้นถูกกฎหมายหรือไม่
โมเด็มทำงานบน Econet EN751627 SOC (2 คอร์ / 4 เธรด) มี RAM มากกว่า 100 เมตรเล็กน้อยสำหรับ Linux และแฟลช 128MB (แบ่งออกเป็นชุดพาร์ติชันหลัก / รอง)
การเก็งกำไรด้านล่าง:
Drayos 5 ขึ้นอยู่กับ Linux 3.18.21 ดูเหมือนว่าจะเป็น bult จาก buildroot bsp ที่อาจใช้ในการสร้าง drayos ก่อนหน้านี้หรือไม่? ยากที่จะบอก
เฟิร์มแวร์มีการอ้างอิงถึง 'TC3162' มากมาย แต่ดูเหมือนว่าจะเป็นปลาเฮอริ่งแดงสิ่งที่ดูเหมือน ADSL SOC แบบสแตนด์อโลนจาก TrendChip ซึ่งตอนนี้กลายเป็นอินเทอร์เฟซ Userland ที่ได้มาตรฐานสำหรับเกตเวย์บ้าน DSL บางชั้น? ดูเหมือนว่าจะปรากฏขึ้นในผู้ค้าต่าง ๆ ของคลาสต่าง ๆ ของโมเด็ม DSL ในหลายปีของโครงการสาธารณะแบบสุ่ม ผู้คนได้เขียนตัวแยกวิเคราะห์สำหรับ cat /proc/tc3162/adsl_stats
ในขณะนี้ โมดูลเคอร์เนลทั้งหมด (ซึ่งไม่มีแหล่งที่มา ... ) โต้ตอบกับและใช้โลกลึกลับ TC3162 นี้รวมถึงสิ่งที่ดูเหมือนจะเป็นไดรเวอร์อีเธอร์เน็ต/สวิตช์หลัก ( eth.ko
) ชิปสวิตช์ / Mac เองอาจเป็น MT7530
การวิจัยเพิ่มเติมจะต้องทำในสแต็คไดรเวอร์/เฟิร์มแวร์ที่เกี่ยวข้องเพื่อให้ความเห็นที่มีการศึกษาว่ามีบางอย่างเช่น OpenWRT สามารถส่งไปยังอุปกรณ์นี้ได้หรือไม่ การมีเชลล์รูทที่เชื่อถือได้ช่วย :)