debian: Headless Nvidia for Cryptomining II

ภาคต่อของการขุดเหมืองโดยใช้การ์ดจอ Nvidia

จากครั้งก่อน การตั้งค่าของการ์ด ต้องตั้งค่าใหม่ทุกครั้งเมื่อบูตใหม่ (จริง ๆ สามารถบันทึกค่าเดิมไว้ แล้วนำมาใช้ใหม่ได้ แต่ไม่สะดวกสำหรับงาน console)
คราวนี้จะทำให้มีความเป็นอัตโนมัติมากขึ้น โดยไม่ต้องมาตั้งผ่าน Display Manager (lightdm) ดังนั้นจึงไม่ต้องลง lightdm แบบครั้งก่อนแล้ว

เราจะใช้โปรแกรมและไฟล์ EDID ของคุณ ฺBoris Dimitrov ในการจำลองจอเสมือน และปรับความเร็วพัดลมให้แปรผันตามอุณหภูมิ แต่เนื่องจากดูเหมือนโปรแกรมเดิมใช้งานได้แค่การ์ดใบเดียว และต้องลง tcsh ซึ่งไม่ใช่เชลล์ปริยายของเดเบียน เราจึงเอาของเดิมมาปรับปรุงเล็กน้อยดังนี้

  • ให้ใช้กับ bash ได้
  • ใช้กับการ์ดหลายใบได้
  • ปรับให้พัดลมทำงานรอบจัดมากขึ้น เพื่อให้ GPU เย็นลง
  • เอื้อให้ง่ายในการเร่งการทำงานของ GPU และหน่วยความจำ
  • ปรับลดการกินพลังงานลงมาเหลือ 80%
  • งานอื่น ๆ ให้ใช้งานได้คล่องตัวขึ้น

เนื่องจากเป้าหมายคือความเป็นอัตโนมัติมากขึ้น จึงขอใช้งานด้วยสิทธิ์ root ตั้งแต่ต้น เพื่อให้สะดวกในการปรับแต่ง ดังนั้นจึงต้องระวังในการทำงานหน่อย

เริ่มด้วย ถ้าเดิมลง lightdm ไว้แล้ว ให้ถอดออกก่อน

# apt purge lightdm

ถ้าเดิมยังไม่ได้ลงไดรเวอร์ ก็ลงก่อน

# apt install nvidia-driver nvidia-smi nvidia-settings

ลงของจำเป็นก่อน และดาวน์โหลดโปรแกรมมาใช้

# apt install awk git
# mkdir -p /PATH/TO/SOURCE/
# cd /PATH/TO/SOURCE
# git clone https://github.com/widhaya3/set_gpu_fans_public.git
# cd set_gpu_fans_public

เราอาจสั่งรันตรง ๆ ได้จากในนี้เลย หรืออาจนำไปติดตั้งในไดเรคทอรี่ /opt/set_gpu_fans ตามตัวอย่าง README.md ก็ได้
แต่เพื่อให้คล้ายกับต้นฉบับ เราจะสร้างลิงก์ไปที่ /opt แล้วสั่งรันจากที่นั่น และเผื่อต้นฉบับมีการปรับปรุง เราก็สามารถสั่ง git pull เพื่ออัปเดตโปรแกรมล่าสุดได้เลย

# mkdir -p /opt
# cd /opt
# ln -sf /PATH/TO/SOURCE/set_gpu_fans_public set_gpu_fans
# /opt/set_gpu_fans/cool_gpu

เสร็จแล้ว
หลังรันครั้งแรก โปรแกรมจะสร้างไฟล์คอนฟิกไว้ที่ /etc/set_gpu_fans_nv/ และไฟล์ปูม (log) ไว้ที่ /var/log/set_gpu_fans_nv-X มีรายละเอียดคือ

  • ไฟล์คอนฟิก /etc/set_gpu_fans_nv/nvscmd_exmod_once-0.cfg ไฟล์นี้จะถูกสั่งรันแค่ครั้งเดียวตอนเริ่มรัน
  • ไฟล์คอนฟิก /etc/set_gpu_fans_nv/nvscmd_exmod_loop-0.cfg ถูกรันทุกครั้งที่มีการเปลี่ยนความเร็วพัดลม
  • ไฟล์ปูม /var/log/set_gpu_fans_nv-0 บันทึกปูมของการ์ดใบแรก

ถ้ามีการ์ดหลายใบ เลขลงท้ายจะเพิ่มไปเป็น -1,-2,-3 ไปเรื่อย
เราจะดูผลงานและปรับแต่งภายหลังได้จากคำสั่ง nvidia-smi
ถ้าปรับแต่งจนใช้งานได้ดีแล้ว ก็เอาคำสั่งไปใส่ไว้ในไฟล์ /etc/rc.local เพื่อให้เริ่มงานตอนเปิดเครื่องได้เลย