สารบัญ:

ตั้งค่า Raspberry Pi โดยใช้ Diet Pi โดยไม่ต้องใช้จอภาพหรือคีย์บอร์ด: 24 ขั้นตอน
ตั้งค่า Raspberry Pi โดยใช้ Diet Pi โดยไม่ต้องใช้จอภาพหรือคีย์บอร์ด: 24 ขั้นตอน

วีดีโอ: ตั้งค่า Raspberry Pi โดยใช้ Diet Pi โดยไม่ต้องใช้จอภาพหรือคีย์บอร์ด: 24 ขั้นตอน

วีดีโอ: ตั้งค่า Raspberry Pi โดยใช้ Diet Pi โดยไม่ต้องใช้จอภาพหรือคีย์บอร์ด: 24 ขั้นตอน
วีดีโอ: How Install Diet Pi Raspberry Pi 4 Or Any SBC - Install Set Up Configure 2024, ธันวาคม
Anonim
ตั้งค่า Raspberry Pi โดยใช้ Diet Pi โดยไม่ต้องใช้จอภาพหรือคีย์บอร์ด
ตั้งค่า Raspberry Pi โดยใช้ Diet Pi โดยไม่ต้องใช้จอภาพหรือคีย์บอร์ด

คำแนะนำนี้เลิกใช้แล้ว กรุณาใช้: DietPi Setup

NOOBS ต้องใช้จอภาพ คีย์บอร์ด และเมาส์ ซึ่งมีค่าใช้จ่ายประมาณ 60 ดอลลาร์สหรัฐฯ (USD) ขึ้นไป อย่างไรก็ตาม เมื่อ Wi-Fi ใช้งานได้ อุปกรณ์เหล่านี้ก็ไม่จำเป็นอีกต่อไป บางที DietPi อาจสนับสนุน USB เพื่อซีเรียลในภาพ

ทุกครั้งที่ฉันเริ่มโครงการ Raspberry Pi ใหม่ ฉันจะดึงจอภาพ คีย์บอร์ด และเมาส์ออก แล้วหาที่สำหรับตั้งค่า หลังจากเสร็จสิ้นโครงการ Raspberry Pi ครั้งที่ 3 ฉันคิดว่าจะต้องมีวิธีที่ดีกว่านี้

วิธีนี้ค่อนข้างล้ำหน้ากว่าเล็กน้อย และใช้ MacBook Pro แทนจอภาพ คีย์บอร์ด และเมาส์ ดังนั้นจึงช่วยประหยัดเงินได้ 45 เหรียญและใช้พื้นที่น้อยลง

ด้วยคำแนะนำนี้ ฉันจึงเริ่มใช้ Diet Pi แทน Raspbian โครงการส่วนใหญ่ของฉันไม่มีหัว การใช้ Diet Pi ทำให้การ์ด SD มีอายุการใช้งานยาวนานขึ้น และลดกระบวนการที่มีค่าใช้จ่าย ซึ่งจะช่วยเพิ่มประสิทธิภาพ

รอบแรกต้องใช้คีย์บอร์ด จอภาพ และเมาส์ รอบที่สองไม่จำเป็นต้องใช้สิ่งเหล่านี้

เป้าหมายของโครงการนี้คือ:

  • ใช้อาหาร Pi
  • ขจัดความจำเป็นในการใช้จอภาพ คีย์บอร์ด และเมาส์ในการตั้งค่าในภายหลัง
  • สร้างอิมเมจการ์ด micro SD มาตรฐาน เพื่อครั้งต่อไปที่ฉันจะข้ามขั้นตอนต่างๆ ไปได้
  • บีบอัดภาพการ์ด micro SD

ขั้นตอนที่ 1: รวบรวมชิ้นส่วน

รวบรวมอะไหล่
รวบรวมอะไหล่

ฉันพบว่าส่วนต่างๆ ด้านล่างทำงานได้ดีที่สุดในแอปพลิเคชันของฉัน ชิ้นส่วนเหล่านี้มีราคาแพงกว่าชุดสตาร์ทเตอร์ทั่วไป

รับชิ้นส่วนและเครื่องมือ (ราคาเป็น USD):

  • MacBook Pro (สามารถใช้พีซีได้)
  • Raspberry Pi 3 หรือ Raspberry Pi 2 รุ่น B Element14 $35
  • อแด็ปเตอร์ Panda 300n WiFi Amazon $16.99
  • อะแดปเตอร์แปลงไฟ USB 5.2V 2.1A จาก Amazon $5.99
  • สาย Micro USB เป็น USB 3 ฟุต จาก Amazon $4.69
  • FTDI TTL-232R-RPI สายเคเบิล Serial to USB จาก Mouser $15
  • เคสจาก Amazon $6.99
  • SanDisk Ultra 16 GB microSDHC Class 10 พร้อมอะแดปเตอร์ (SDSQUAN-016G-G4A) จาก Amazon $ 8.99
  • ทีวีพร้อมพอร์ต HDMI, แป้นพิมพ์ USB, เมาส์ USB, สาย HDMI (จำเป็นเฉพาะในครั้งแรกเท่านั้น)

หมายเหตุ:

ข้อความที่อยู่ในโพดำ เช่น ♣replace-this♣ ควรแทนที่ด้วยค่าจริง แน่นอน เอาจอบออก

ขั้นตอนที่ 2: ดาวน์โหลด Diet Pi

ดาวน์โหลด Diet Pi
ดาวน์โหลด Diet Pi

เมื่อเทียบกับแล็ปท็อปหรือเดสก์ท็อปพีซี โปรเซสเซอร์ของ raspberry pi นั้นใช้พลังงานต่ำ ดังนั้น หลักการสำคัญในการรับประสิทธิภาพที่ยอมรับได้คือการกำจัดภาระที่ไม่จำเป็นบนโปรเซสเซอร์

Diet-Pi คือการติดตั้ง raspbian ขั้นต่ำ Diet-Pi ขจัดกระบวนการของระบบปฏิบัติการที่ไม่จำเป็น ทำให้โปรเซสเซอร์ทำงานของผู้ใช้ได้รวดเร็วยิ่งขึ้น การรันคำสั่งบนหนึ่งในระบบ raspbian ของฉันแสดง 126 งานที่ทำงานอยู่ ในขณะที่ diet-pi มี 91 เท่านั้น

Diet-Pi ยังมี GUI ที่มีน้ำหนักเบาและกำจัด I/O ที่ไม่จำเป็นลงในการ์ด micro SD การ์ด SD จะเสื่อมสภาพหลังจากรอบการเขียนซ้ำๆ ลดจำนวนการเขียน ยืดอายุของการ์ด SD โครงการส่วนใหญ่ของฉันไม่ต้องการ GUI ดังนั้น ในขั้นตอนต่อมา LDXE จะถูกลบออก

DietPi เขียนบันทึกส่วนใหญ่ไปยังดิสก์ RAM การบันทึกการเขียนลงในการ์ด micro SD

ขั้นตอน:

  • ดาวน์โหลดเวอร์ชันล่าสุดได้จากที่นี่ Diet-Pi ไปที่ดาวน์โหลด เลือกราสเบอร์รี่ Pi เลือก Raspberry Pi ทุกรุ่น จากนั้นเลือกดาวน์โหลดรูปภาพ
  • เมื่ออัปเดตเวอร์ชันล่าสุดคือ: DietPi_v6.0_RPi-ARMv6-Stretch
  • เมื่อดาวน์โหลดแล้ว ให้ลากการดาวน์โหลดจากการดาวน์โหลดไปยังไดเร็กทอรีที่คุณจัดเก็บภาพไว้ ฉันชอบเก็บรูปภาพที่ดาวน์โหลดและรูปภาพสำรองของโปรเจ็กต์ raspberry pi ไว้ในไดเรกทอรีบน Mac ของฉัน
  • จำไว้ว่าทุกสิ่งที่อยู่ใน ♣ จะถูกแทนที่ด้วยชื่อหรือค่าของคุณ

♣macbook-image-directory♣

  • เปิดหน้าต่างเทอร์มินัลบน MacBook
  • เปลี่ยนเป็นไดเร็กทอรีรูปภาพของคุณและแสดงรายการไฟล์

$ cd ♣macbook-image-directory♣

$ ls 2015-11-21-raspbian-jessie.img SDCardBackupSetup.dmg DietPi_RPi- (เจสซี).7z disk_test.dmg

  • ฉันใช้ unarchiver เพื่อคลายการบีบอัดไฟล์ zip (.7z) บน MacBook ของฉัน
  • แล้วลบไฟล์บีบอัด (ลากไฟล์ zip ไปที่ถังขยะ)

$ cd ♣macbook-image-directory♣

$ ls 2015-11-21-raspbian-jessie.img SDCardBackupSetup.dmg DietPi_v136_RPi- (เจสซี).img disk_test.dmg

หากชื่อรูปภาพมีวงเล็บ ขั้นตอนต่อมาจะไม่เป็นเช่นนั้น ดังนั้น เปลี่ยนชื่อไฟล์และลบวงเล็บออก ขณะนี้ภาพ: ♣diet-pi-image♣

ขั้นตอนที่ 3: เบิร์นไดเอท-พายอิมเมจไปยังการ์ด Micro SD

ดาวน์โหลด etcher จากที่นี่ แล้วติดตั้ง etcher Etcher ทำให้การติดตั้งเป็นหลักฐานที่โง่เขลา

เริ่มแกะสลัก

  • เลือกรูปภาพของคุณ ♣diet-pi-image♣:
  • เลือกการ์ด microSD ของคุณ
  • แฟลช
  • ใส่รหัสผ่าน MacBook

ตัวแกะสลักจะไม่เลิกต่อเชื่อมการ์ด microSD ด้วยเหตุผลใดก็ตาม ดังนั้นฉันต้องเลือกไดรฟ์แล้วคลิกขวาเพื่อดีดออก (หรือถ้าเมาส์ปุ่มเดียว CTRL-click) ถ้าคุณไม่ดีดออก ก็ไม่สำคัญ คุณจะได้รับข้อความเตือน

ขั้นตอนที่ 4: การติดตั้ง Raspberry Pi และการเชื่อมต่อ

การติดตั้ง Raspberry Pi และการเชื่อมต่อ
การติดตั้ง Raspberry Pi และการเชื่อมต่อ
การติดตั้ง Raspberry Pi และการเชื่อมต่อ
การติดตั้ง Raspberry Pi และการเชื่อมต่อ

ตัวระบายความร้อนนำเทปออกแล้วกดลงบนโปรเซสเซอร์ให้แน่น ฮีทซิงค์และชิปมีขนาดใกล้เคียงกัน มันค่อนข้างชัดเจนว่าควรจะไป ฉันไม่ได้ถ่ายรูป

กรณี

แยกกรณีออกจากกัน รุ่นเก่ามีสามส่วน: บน ล่าง และกลาง เลื่อน Raspberry Pi เข้าไปในส่วนล่างของเคส เลื่อน Raspberry Pi ลงไปด้านล่าง มีคลิปสองคลิปที่ส่วนท้ายที่เสียบการ์ด SD กระดานต้องเลื่อนใต้คลิปเหล่านี้ เข้าง่ายไม่ต้องออกแรง อีกครั้งนี้ดูเหมือนตรงไปตรงมามาก เลยไม่มีรูปถ่าย เป็นการดีที่จะเก็บ pi ไว้ที่ส่วนล่างของเคส

สายเคเบิลและการ์ด SD

เว้นแต่จะระบุไว้ ให้ใส่ข้อมูลต่อไปนี้ลงใน Raspberry Pi

  • จำเป็นสำหรับ Pass 1. เท่านั้น

    • สาย HDMI เข้าทีวี
    • แป้นพิมพ์ USB
    • เมาส์ USB
  • การ์ดไมโคร SD
  • สายอีเธอร์เน็ต
  • ดองเกิล Wi-Fi
  • สาย USB Serial I/O (ดูภาพด้านบน)

    • กราวด์ = ลวดสีดำ พิน 06 บน RPi
    • Tx = สายเหลือง พิน 08
    • Rx = สายสีแดง pin10

เมื่อข้างต้นเสร็จสมบูรณ์แล้ว:

ใส่สายไฟ

เสียบสาย USB/Serial เข้ากับพอร์ต USB ของ MacBook

หากใช้ myDietPi_v104_RPi-jessie.img ที่สร้างขึ้นใน Pass 1 แล้ว

  • ตรวจสอบภาคผนวกเพื่อดูว่ามีขั้นตอนเพิ่มเติมที่คุณต้องการเพิ่มหรือไม่
  • เรียกใช้ dietpi-config เพื่อเปลี่ยนชื่อโฮสต์
  • หลังจากเปลี่ยนชื่อโฮสต์ คุณอาจต้องลบคีย์ RSA คำแนะนำในการทำเช่นนี้อยู่ในภาคผนวกของคำแนะนำนี้
  • คุณทำเสร็จแล้ว!

ขั้นตอนที่ 5: ตั้งค่า DietPi

ตั้งค่า DietPi
ตั้งค่า DietPi

ตั้งค่า DietPi

เข้าสู่ระบบราสเบอร์รี่ pi

เข้าสู่ระบบ: root

รหัสผ่าน: dietpi

ทำตามคำแนะนำ DietPi จะอัปเดตและติดตั้งซอฟต์แวร์ที่จำเป็น

ขั้นตอนที่ 6: กำหนดค่า DietPi

เข้าสู่ระบบเมื่อได้รับแจ้งให้ดำเนินการดังกล่าว

แทนที่จะใช้หน้าจอการตั้งค่าประมาณ 25 หน้าจอ ฉันใช้หมายเลขเมนูเป็นแนวทาง

หากนำเสนอด้วยเมนู ให้นำทางผ่านเมนูโดยใช้:

  • ปุ่มลูกศร
  • แท็บที่จะย้าย
  • พื้นที่เพื่อสลับตัวเลือกจากช่องว่างเป็น *
  • และ ENTER

ทำตามคำแนะนำก็ใช้งานง่าย บางขั้นตอนจะต้องมีการรีสตาร์ท ผ่านตัวเลือกเมนูทั้งหมดและตัดสินใจว่าคุณต้องการอะไร

ถ้าจะยุ่งก็ไม่เป็นไร แค่เริ่มต้นใหม่

นี่คือการตั้งค่าของฉัน เปลี่ยนให้เหมาะกับความต้องการของคุณ

DietPi-ซอฟต์แวร์

เมนูแรกคือ DietPi-Software

เลือก dietpi-config

เมนูหลัก

  1. ตัวเลือกการแสดงผล
  2. ตัวเลือกเสียง
  3. ตัวเลือกประสิทธิภาพ
  4. ตัวเลือกขั้นสูง
  5. ตัวเลือกภาษา/ภูมิภาค

    1. สถานที่ (สำหรับสหรัฐอเมริกาใช้สเปซบาร์เพื่อสร้าง *)

      1. [*] en. US. UTF-8 UTF-8
      2. en. US. UTF-8 - สถานที่เริ่มต้น
      3. จะทำให้เกิดการเปลี่ยนแปลง
    2. เขตเวลา

      1. เรา
      2. ศูนย์กลาง
    3. แป้นพิมพ์

      1. อื่น

        อังกฤษ (สหรัฐอเมริกา)

      2. ไม่มีคีย์เขียน
      3. ค่าเริ่มต้นสำหรับรูปแบบแป้นพิมพ์
      4. รุ่น: Dell
  6. ตัวเลือกความปลอดภัย

    1. เปลี่ยนรหัสผ่านรูท
    2. เปลี่ยนชื่อโฮสต์
  7. ตัวเลือกเครือข่าย
  8. ตัวเลือกการเริ่มต้นอัตโนมัติ

    0. คอนโซล: เข้าสู่ระบบด้วยตนเอง (ค่าเริ่มต้น)

  9. เครื่องมือ

แล้วรีบูต

เข้าสู่ระบบด้วยรูทและ ♣รหัสผ่านของคุณ♣

DietPi-ซอฟต์แวร์

ติดตั้งซอฟต์แวร์เสริม

เมนูการตั้งค่าซอฟต์แวร์ DietPi:

  • เลือกซอฟต์แวร์ที่ปรับให้เหมาะสมของ DietPi

    • [*] RPi. GPIO
    • [*] LLSP: lighttpd | sqlite | php หมายเหตุ: นี่เป็นทางเลือก
    • [*] certbot - หมายเหตุ: ณ วันที่ 16 เมษายน 2018 certbot ไม่ทำงานกับ lighttpd
  • เลือกซอฟต์แวร์เพิ่มเติม Linux

    • [*] Python pip หมายเหตุ: นี่เป็นทางเลือก แต่โครงการส่วนใหญ่ของฉันใช้ python
    • [*] อาวาฮี-ภูต
  • เซิร์ฟเวอร์ SSH: เปลี่ยนจาก DropBear เป็น OpenSSH
  • ไฟล์เซิร์ฟเวอร์: ไม่มี
  • ระบบล็อก: DietPi-Ramlog #1
  • ช่วย!
  • เริ่มการติดตั้ง

DietPi จะติดตั้งซอฟต์แวร์

ขั้นตอนที่ 7: ตัวเลือก: ตั้งค่า Wi-Fi

โดยทั่วไป Raspberry Pi สามารถใช้การเชื่อมต่อแบบมีสายหรือไร้สายก็ได้

หากคุณต้องการใช้ Wi-Fi ให้ถอดสายอีเทอร์เน็ตและเปิดใช้งาน Wi-Fi

เข้าสู่ระบบและเรียกใช้ dietpi-launcher

$ dietpi-launcher

เมนูมีลักษณะดังนี้:

  • DietPi-ซอฟต์แวร์
  • DietPi-Config
  • DietPi-AutoStart
  • DietPi-Cron

เลือก DietPi-Config ซึ่งมีลักษณะดังนี้:

  1. ตัวเลือกการแสดงผล
  2. ตัวเลือกเสียง
  3. ตัวเลือกประสิทธิภาพ
  4. ตัวเลือกขั้นสูง
  5. ตัวเลือกภาษา/ภูมิภาค
  6. ตัวเลือกความปลอดภัย
  7. ตัวเลือกเครือข่าย: อะแดปเตอร์

เลือกตัวเลือกเครือข่าย: อะแดปเตอร์

  • เลือก WiFi - เปิดใช้งาน WiFi
  • เลือก Onboard WiFi - เปิดใช้งาน onboard Wi-Fi

เลือกตัวเลือกเครือข่าย: อแด็ปเตอร์ แล้วเลือก WiFi

เลือก Scan and Connect เลือก SSID. ของบ้านคุณ

เปลี่ยนประเทศ: US

เปิดใช้งานการเชื่อมต่อใหม่อัตโนมัติ

ป้อนรหัสผ่านของคุณ (aka Access Key): ♣your-home-ssid♣

ใช้การเปลี่ยนแปลง

หลังจากรีบูต DietPi จะแสดง:

IP eth0: ♣ที่อยู่ IP ของคุณ♣

เปิดหน้าต่างเทอร์มินัลบนคอมพิวเตอร์ของคุณและดูว่าคุณสามารถเชื่อมต่อแบบไร้สายกับ Raspberry Pi ได้โดยใช้คำสั่งใดคำสั่งหนึ่งด้านล่าง

$ ssh root@♣ip-address♣

$ ssh root@♣ชื่อโฮสต์ของคุณ♣.local

และ WiFi ควรใช้งานได้

ขั้นตอนที่ 8: เพิ่มผู้ใช้ Pi ไปที่ DietPi

ตามค่าเริ่มต้น DietPi จะใช้การเข้าสู่ระบบของชื่อผู้ใช้: root ในขณะที่ raspbian ใช้ชื่อผู้ใช้: pi

ทิศทาง Raspberry Pi จำนวนมากและคำแนะนำของฉันถือว่าเป็นจุดเริ่มต้นของ /home/pi และการเข้าสู่ระบบของ pi ดังนั้น เพิ่มผู้ใช้ชื่อ: pi

$ useradd pi -m -G sudo

$ passwd pi รหัสผ่าน: ♣raspberry-pi-password♣ รหัสผ่าน: ♣raspberry-pi-password♣

หากคุณทำผิดพลาด ให้ใช้คำสั่งต่อไปนี้เพื่อลบผู้ใช้:

$ userdel pi

ทำสำเนาไฟล์ /etc/sudoers

ในฐานะผู้ใช้ root แก้ไขไฟล์ แต่ระวังไฟล์นี้ ตรวจสอบให้แน่ใจว่าถูกต้องก่อนบันทึก

$ sudo nano /etc/sudoers

หากไม่มีการเปลี่ยนแปลงต่อไปนี้ คุณจะต้องป้อนรหัสผ่านทุกครั้งที่ใช้ sudo

หลังจากความคิดเห็น #includedir … เพิ่มบรรทัดที่เริ่มต้น pi ALL=:

#includedir /etc/sudoers.d

pi ALL=(ALL) NOPASSWD: ALL

CTRL-o, ENTER, CTRL-x เพื่อบันทึกและปิดไฟล์

เพิ่ม bash shell โดยใช้

$ sudo nano /etc/passwd

และแก้ไขผู้ใช้ pi เพื่อเพิ่ม /bin/bash ในตอนท้าย อย่าเปลี่ยนแปลงอย่างอื่น:

pi:x:1001:1001::/home/pi:/bin/bash

CTRL-o, ENTER, CTRL-x เพื่อบันทึกและปิดไฟล์

ตรวจสอบการใช้งานของผู้ใช้ใหม่

$ ออกจากระบบ

และเข้าสู่ระบบเป็น pi ด้วย ♣raspberry-pi-password♣

$ ssh pi@♣ip-address♣

หากเข้าสู่ระบบเป็น pi โปรแกรมอรรถประโยชน์ DietPi จะอยู่ใน:

/ไดเอทพาย/ไดเอทปี้

สคริปต์ dietpi ใช้การตรวจสอบ root UID = 0 ซึ่งป้องกันไม่ให้ชื่อผู้ใช้ pi เรียกใช้สคริปต์ dietpi สคริปต์ตรวจสอบว่า $UID=0 ซึ่งควรสงวนไว้สำหรับชื่อผู้ใช้รูทหรือไม่ การเพิ่มไดเร็กทอรีไปยัง PATH ไม่ได้ช่วยอะไร

ดังนั้นหากต้องการรัน dietpi-config หรือยูทิลิตี้ dietpi ใดๆ จาก pi ให้เข้าสู่ระบบในฐานะผู้ใช้ขั้นสูง แล้วเรียกใช้คำสั่ง หากต้องการออกจาก superuser ให้ป้อน exit

$ sudo su

$ sudo /DietPi/dietpi/dietpi-config ♣change-settings♣ $ ออก

แน่นอน คุณสามารถแก้ไขสคริปต์และเพิ่ม UID ของชื่อผู้ใช้ pi หรือลบการตรวจสอบ UID ของรูท อาจมีการเปลี่ยนแปลงเพิ่มเติมที่จำเป็น

ถ้า (($UID != 0)); แล้ว

ขั้นตอนเพิ่มเติม

โดยทั่วไป ไม่ควรใช้ root ในการเข้าสู่ระบบ ไม่ควรปิดการเข้าสู่ระบบรูท แต่ควรบล็อกจากการเข้าสู่ระบบปกติ

เพื่อป้องกันไม่ให้ผู้ใช้เข้าสู่ระบบโดยตรงในฐานะรูท ให้ตั้งค่าเชลล์ของบัญชีรูทเป็น /sbin/nologin ในไฟล์ /etc/passwd

$ sudo nano /etc/passwd

เปลี่ยน

root:x:0:0:root:/root:/bin/bash

ถึง

root:x:0:0:root:/root:/usr/sbin/nologin

ขั้นตอนที่ 9: รับ FTDI USB ไปยังอินเทอร์เฟซแบบอนุกรมที่ทำงาน

รับ FTDI USB เป็นอินเทอร์เฟซแบบอนุกรมทำงาน
รับ FTDI USB เป็นอินเทอร์เฟซแบบอนุกรมทำงาน

ตามค่าเริ่มต้น DietPi จะปิดใช้ usb เป็นซีเรียล เปิดใช้งานบริการนี้เพื่อให้เราสามารถใช้งานได้ในอนาคต

$ sudo nano /boot/cmdline.txt

ในไฟล์ เพิ่มก่อน console=tty1

console=ttyAMA0, 115200

CTRL-o, ENTER, CTRL-x เพื่อบันทึกไฟล์และออก

เปิดใช้งานบริการและรีสตาร์ท Raspberry Pi

$ sudo systemctl เปิดใช้งาน [email protected]

$ sudo รีบูต -h 0

หากไม่ได้เสียบปลั๊ก ให้เสียบ FTDI USB เข้ากับสายเคเบิลอนุกรม

สาย USB Serial I/O (ดูภาพด้านบน) มุมด้านนอกของ Raspberry Pi มีพิน 2 แถวด้านนอกใกล้กับขอบมากที่สุดคือพินที่มีเลขคู่ (2, 4, 6) และแถวด้านในเป็นเลขคี่

  • กราวด์ = ลวดสีดำ หมุด 06
  • Tx = สายเหลือง พิน 08
  • Rx = สายสีแดง pin10

ขั้นตอนที่ 10: กำหนดพอร์ต USB

กำหนดพอร์ต USB ที่ใช้โดยอะแดปเตอร์ USB-Serial MacBook ของฉันใช้ชิปจาก FTDI

เปิดหน้าต่างเทอร์มินัลบน MacBook

มีอุปกรณ์มากมายใน /dev ใช้คำสั่งนี้เพื่อระบุอุปกรณ์ (ในกรณีนี้คือ FT9314WH):

$ ls /dev/tty.*/dev/tty. Bluetooth-Incoming-Port /dev/tty.usbserial-FT9314WH คำสั่ง

นี่เป็นอีกวิธีหนึ่งในการค้นพบ:

$ ls /dev | grep FT | grep tty

tty.usbserial-FT9314WH

หากวิธีการข้างต้นไม่ได้ผล ให้ลองทำดังนี้:

เสียบสาย USB เข้ากับ MacBook และเรียกใช้:

$ ls /dev | grep tty

ถอดปลั๊กสาย USB รอสองสามวินาทีแล้วเรียกใช้:

$ ls /dev | grep tty

ระบุความแตกต่าง

ขั้นตอนที่ 11: เปิดหน้าต่างเทอร์มินัลและเชื่อมต่อกับ Raspberry Pi

เปิดหน้าต่างเทอร์มินัลและเชื่อมต่อกับ Raspberry Pi
เปิดหน้าต่างเทอร์มินัลและเชื่อมต่อกับ Raspberry Pi

เปิด (หรือใช้งานต่อ) หน้าต่างเทอร์มินัลบน MacBook

ดูภาพด้านบนและตั้งค่ากำหนดหน้าต่างเทอร์มินัล

  • Terminal เลือก Preferences คลิก Advanced tab
  • xterm และ vt100 ใช้งานได้ แต่ ansi ทำงานได้ดีกว่าเมื่อใช้ nano
  • ตั้งค่า Western ASCII แทน Unicode (UTF-8))

ในหน้าต่างเทอร์มินัลให้ป้อน:

$ screen /dev/tty.usbsrial-FT9314WH 115200

ใช้หน้าต่างเทอร์มินัลบน MacBook ลงชื่อเข้าใช้ RPi: username = pi password = raspberry

หมายเหตุ: สาย USB-serial สามารถวางอักขระได้ หากอักขระหลุด คุณอาจไม่ได้รับข้อความแจ้ง ให้กด Return หรือป้อนชื่อผู้ใช้ แล้วกด Enter

หากโหมดการกู้คืนปรากฏขึ้น แสดงว่าการ์ด micro SD ไม่ได้ตั้งค่าอย่างถูกต้อง เริ่มต้นใหม่.

  • พรอมต์ของ Diet Pi สำหรับผู้ใช้รูท # (ในโหมดการกู้คืน raspbian ใช้พรอมต์ #)
  • พรอมต์ปกติของ Diet Pi สำหรับผู้ใช้ pi คือ $

ขั้นตอนที่ 12: อัปเดตและอัปเกรดเสมอ

อัปเดตและอัปเกรดอยู่เสมอ

  • "apt-get update" ดาวน์โหลดรายการแพ็คเกจล่าสุดจากที่เก็บที่เหมาะสม
  • "apt-get upgrade" อัพเดตแพ็คเกจ
  • "apt-get autoremove" ลบแพ็คเกจที่ไม่จำเป็นอีกต่อไป
  • รีบูตเป็นตัวเลือก บริการบางอย่างต้องเริ่มใหม่หลังจากการอัปเกรด การรีบูตเป็นวิธีที่ขี้เกียจของฉันเพื่อให้แน่ใจว่าบริการที่จำเป็นทั้งหมดได้รับการรีสตาร์ทอย่างถูกต้อง

รันคำสั่งต่อไปนี้:

$ sudo apt-get update

$ sudo apt-get upgrade $ sudo apt-get autoremove $ sudo reboot

หากมีข้อผิดพลาด ให้ตรวจสอบว่าเสียบสายอีเทอร์เน็ตแล้ว

ขั้นตอนที่ 13: ขยายระบบไฟล์

raspi-config มีตัวเลือกในการขยายระบบไฟล์เพื่อใช้การ์ด micro SD ทั้งหมด ฉันกังวลว่าการขยายระบบไฟล์ถูกมองข้ามใน dietpi-config

อย่างไรก็ตาม ตามค่าเริ่มต้น "รูปภาพของ DietPi ได้รับการปรับให้เหมาะสมล่วงหน้าด้วยคุณสมบัติต่างๆ เช่น การขยายระบบไฟล์อัตโนมัติ"

หากต้องการแสดงว่าระบบไฟล์ถูกขยาย ให้รันคำสั่ง:

$ df -h

ใน DietPi ไม่จำเป็นต้องขยายระบบไฟล์

ขั้นตอนที่ 14: ตัวเลือก: ลบ GUI

ขั้นตอนทางเลือก โปรเจ็กต์ของฉันไม่ได้ใช้ GUI ดังนั้นให้ลบออก การนำ GUI ออกจะช่วยประหยัดพื้นที่จัดเก็บประมาณ 2MB และปรับปรุงประสิทธิภาพ

$ sudo apt-get --purge ลบ 'x11-*'

$ sudo apt-get --purge autoremove

การเพิ่มโหมดเทอร์โบมีประโยชน์ด้านประสิทธิภาพ wifi บางประการ แก้ไขไฟล์:

$ sudo nano /boot/cmdline.txt

และเพิ่ม

smsc95xx.turbo_mode=Y ดังนั้นดูเหมือนว่า:

dwc_otg.lpm_enable=0 console=ttyAMA0, 115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=กำหนดเวลา fsck.repair=ใช่ smsc95xx.turbo_mode=Y rootwait rootdelay=10

CTRL-o, ENTER, CTRL-x เพื่อบันทึกและออก

จากนั้นรีบูต

$ sudo รีบูต

ขั้นตอนที่ 15: ตั้งค่า Gmail

Mail มีประโยชน์มากในการรับการแจ้งเตือนและการแจ้งเตือนเกี่ยวกับปัญหาใน Raspberry Pi

ตรวจสอบให้แน่ใจว่าที่เก็บเป็นข้อมูลล่าสุด เรียกใช้คำสั่ง:

$ sudo apt-get update

ติดตั้ง SSMTP และยูทิลิตี้เมล:

$ sudo apt-get ติดตั้ง ssmtp

$ sudo apt-get ติดตั้ง mailutils -y

แก้ไขไฟล์การกำหนดค่า SSMTP:

$ sudo nano /etc/ssmtp/ssmtp.conf

ดังนี้

mailhub=smtp.gmail.com:587 ชื่อโฮสต์=♣ชื่อโฮสต์ของคุณ♣ AuthUser=♣your-gmail-account♣@gmail.com AuthPass=♣your-gmail-password♣ UseSTARTTLS=YES

CTRL-o, ENTER, CTRL-x เพื่อบันทึกและออก

แก้ไขไฟล์ชื่อแทน SSMTP:

$ sudo nano /etc/ssmtp/revaliases

สร้างหนึ่งบรรทัดสำหรับผู้ใช้แต่ละคนในระบบของคุณที่จะสามารถส่งอีเมลได้ ตัวอย่างเช่น:

ตั้งค่าการอนุญาตของไฟล์การกำหนดค่า SSMTP:

$ sudo chmod 664 /etc/ssmtp/ssmtp.conf

ขั้นตอนที่ 16: ค้นหาที่อยู่ IP ตามชื่อ

ระบบอัตโนมัติในบ้านของฉันจำเป็นต้องเข้าถึงราสเบอร์รี่ pis ของฉัน อย่างไรก็ตาม ที่อยู่ IP ที่จัดสรร DHCP สามารถเปลี่ยนแปลงได้ ดังนั้นฉันจึงลองกำหนดที่อยู่ IP แบบคงที่ ฉันไม่พอใจกับโซลูชันนี้ ต่อไป ฉันลองใช้ nmap เพื่อค้นหาที่อยู่ IP ของชื่อโฮสต์ แต่ดูเหมือนว่าจะค่อนข้างเกี่ยวข้อง ฉันจะตั้งค่าเซิร์ฟเวอร์ DNS เมื่อฉันพบวิธีแก้ปัญหาด้านล่าง

การอ้างถึง raspberry pi นั้นง่ายกว่าโดยใช้ ♣hostname♣.local

หากคุณติดตั้ง avahi-daemon โดยใช้ dietpi-config และเปลี่ยนชื่อโฮสต์ คุณสามารถข้ามไปยังขั้นตอนถัดไปได้

ติดตั้ง DNS แบบหลายผู้รับ

$ sudo apt-get ติดตั้ง avahi-daemon

$ ชื่อโฮสต์ -I

192.168.1.100

เปลี่ยนชื่อโฮสต์

$ sudo nano /etc/hosts

ชื่อโฮสต์ควรเริ่มต้นเป็น dietpi เปลี่ยนบรรทัดสุดท้ายจาก dietpi เป็น ♣hostname♣. ใหม่

192.168.1.100 ♣ชื่อโฮสต์♣

CTRL-O, CTR-X, ENTER เพื่อบันทึกและออกจากตัวแก้ไข

$ sudo nano /etc/hostname

♣ชื่อโฮสต์♣

CTRL-O, CTR-X, ENTER เพื่อบันทึกและออกจากตัวแก้ไข

ยอมรับการเปลี่ยนแปลงในระบบ

$ sudo /etc/init.d/hostname.sh

$ sudo รีบูต

เกตเวย์ไม่ได้ตั้งค่าอย่างถูกต้อง

$ sudo เส้นทาง -n

ตารางเส้นทาง IP ของเคอร์เนล เกตเวย์ปลายทาง แฟล็ก Genmask การอ้างอิงเมตริก ใช้ Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0

เรียกใช้คำสั่งโดยที่ 192.168.1.254 คือที่อยู่ IP ของเกตเวย์ของ ISP ของคุณ:

เส้นทาง $ sudo เพิ่มค่าเริ่มต้น gw 192.168.1.254

$ sudo route -n Kernel IP routing table เกตเวย์ปลายทาง Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 wlan0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0

เห็นได้ชัดว่าฉันพลาดบางอย่างในการตั้งค่า

$ cat /etc/network/interfaces

# เกตเวย์ Wifi 192.168.0.1

ขั้นตอนที่ 17: สำรองข้อมูลการ์ด Micro SD

เมื่อตั้งค่า Raspberry Pi แล้ว ให้สำรองรูปภาพ ใช้ภาพนี้เพื่อสร้างโครงการต่อไป

นอกจากนี้ สำรองข้อมูลโครงการเมื่อเสร็จสิ้น หากมีสิ่งใดผิดพลาดกับการ์ด SD ก็สามารถกู้คืนได้ง่าย

ปิด Raspberry Pi

$ sudo ปิด –h 0

รอจนกว่าการ์ดจะปิดลง จากนั้นถอดแหล่งจ่ายไฟ จากนั้นถอด micro SD Card

ใส่การ์ด micro SD ลงในอะแดปเตอร์ SD จากนั้นเสียบอะแดปเตอร์ SD ลงใน MacBook

บน MacBook ใช้คำแนะนำเหล่านี้จาก The Pi Hut โดยมีการดัดแปลงดังนี้:

เปิดหน้าต่างเทอร์มินัล

เปลี่ยนเป็นไดเร็กทอรีที่มี raspbian image

$ cd ♣your-macbook-image-directory♣

ระบุดิสก์# (ไม่ใช่พาร์ติชั่น) ของการ์ด SD เช่น disk2 (ไม่ใช่ disk2s1) จากเอาต์พุตของ diskutil = 4 ดิสก์ # ควรเป็น FAT_32 ในรายการด้านล่าง ♣micro-SD-card-disk#♣ = 2

$ รายการดิสก์

/dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *160.0 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_HFS Cartwright 159.2 GB disk0s2 3: Apple_Boot Recovery HD 650.0 MB disk0s3 /dev/disk1 #: TYPE NAME SIZE IDENTIFIER 0: Apple_partition_scheme *2.5 GB disk1 1: Apple_partition_map 1.5 KB disk1s1 2: Apple_HFS Age of Empires III 2.5 GB disk1s2 /dev/disk2 #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *15.5 GB disk2 1: Windows_FAT_32 บูต 58.7 Linux 15.5 disk2s1 2: GB disk2s2 /dev/disk4 #: TYPE NAME SIZE IDENTIFIER 0: Apple_partition_scheme *18.1 MB disk4 1: Apple_partition_map 32.3 KB disk4s1 2: Apple_HFS Flash Player 18.1 MB disk4s2

สำคัญ: ตรวจสอบให้แน่ใจว่าคุณใช้ ♣micro-SD-card-disk#♣ ที่ถูกต้อง – หากคุณป้อน ♣micro-SD-card-disk#♣ ผิด คุณจะสิ้นสุดการล้างข้อมูลในฮาร์ดดิสก์ของคุณ!

คำอธิบายควรมีลักษณะดังนี้: ♣description♣ = myDietPi_v104_RPi-jessie

คัดลอกรูปภาพจากการ์ด SD ของคุณ ตรวจสอบให้แน่ใจว่าชื่อรูปภาพและถูกต้อง:

$ sudo dd if=/dev/disk♣micro-SD-card-disk#♣ of=♣your-macbook-image-directory♣/SDCardBackup♣คำอธิบาย♣.img

CTRL-t เพื่อดูสถานะของการคัดลอก

เมื่อสร้างรูปภาพแล้ว ให้บีบอัดรูปภาพ ภาพขนาด 8GB ที่สร้างขึ้นใหม่จะบีบอัดให้เหลือน้อยกว่า 2GB

$ gzip ♣คำอธิบาย♣.img

ในการคลายการใช้งาน:

$ gunzip ♣คำอธิบาย♣.img.gz

เมื่อเสร็จแล้ว ให้ยกเลิกการต่อเชื่อมการ์ด SD:

$ diskutil unmountDisk /dev/disk♣micro-SD-card-disk#♣

ถอดอะแดปเตอร์ SD ออกจาก MacBook และถอดการ์ด micro SD ออกจากอะแดปเตอร์

ใส่การ์ด micro SD ใน Raspberry Pi

ในโปรเจ็กต์ถัดไป ให้ใช้คลายการบีบอัดอิมเมจนี้และข้ามหลายขั้นตอนในคำแนะนำนี้

และคุณทำเสร็จแล้ว!

ขั้นตอนที่ 18: ภาคผนวก: คีย์ที่สร้างไว้ล่วงหน้า

คีย์ที่สร้างไว้ล่วงหน้าขึ้นอยู่กับ MAC ของ Raspberry Pi และไม่ใช่คีย์เฉพาะสำหรับการ์ด micro SD ต้องตั้งค่าเหล่านี้สำหรับแต่ละอุปกรณ์

การใช้คีย์ที่สร้างไว้ล่วงหน้าจำเป็นต้องเปลี่ยนเป็น /etc/network/interfaces ดังนั้นจึงใช้ wpa_supplicant/conf คำแนะนำสำหรับการตั้งค่า Wi-Fi จะแสดงวิธีการทำสิ่งนี้

สร้างคีย์ PSK ที่สร้างไว้ล่วงหน้า เข้าสู่ระบบ Raspberry Pi และเรียกใช้คำสั่ง:

$ wpa_passphrase ♣your-ssid♣ ♣your-pass-phrase♣

เอาท์พุท:

เครือข่าย={

ssid="♣your-ssid♣" psk=♣คีย์ที่สร้างไว้ล่วงหน้าของคุณ♣ }

/etc/wpa_supplicant/wpa_supplicant.conf

แต่ละพารามิเตอร์ในไฟล์ /etc/network/interfaces ถูกวัด

ไฟล์ wpa_supplicant.conf ต้องถูกต้อง มิฉะนั้น wifi จะไม่ทำงาน

ลงชื่อเข้าใช้ raspberry pi และเรียกใช้คำสั่ง:

$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

แก้ไขไฟล์ให้มีลักษณะดังนี้:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

update_config=1 network={ ssid="♣your-ssid♣" # use a pre-generated key psk=♣your-pre-generated-key♣ # หากสร้างภาพมาตรฐานสำหรับหลายโครงการ ให้ใช้วลีรหัสผ่าน # แทน คีย์ที่สร้าง # คีย์ที่สร้างขึ้นขึ้นอยู่กับ MAC ของ Raspberry Pi # psk="♣your pass phrase♣" # ระบุเพื่อความชัดเจน key_mgmt=wpa_psk proto=rsn # CCMP คือการเข้ารหัสที่ถูกต้องสำหรับ WPA-PSK pairwise=CCMP group=CCMP }

CTRL-o เพื่อเขียนไฟล์

ENTER เพื่อยืนยันการเขียน

CTRL-x เพื่อออกจากโปรแกรมแก้ไขนาโน

ขั้นตอนที่ 19: ภาคผนวก: เพิ่มใบรับรองฝั่งไคลเอ็นต์ไปยังเว็บเซิร์ฟเวอร์

โปรเจ็กต์ของฉันมุ่งเน้นไปที่ระบบอัตโนมัติในบ้าน และแม้ว่าจะมีประโยชน์สำหรับฉันที่จะเข้าถึง ฉันไม่ต้องการให้โลกมาควบคุมบ้านของฉัน คู่ใบรับรองเซิร์ฟเวอร์/ไคลเอ็นต์ป้องกันไม่ให้ผู้ใช้ที่ไม่ได้รับอนุญาตเข้าถึง

ทำตามคำแนะนำนี้เพื่อเพิ่มใบรับรอง: จำกัดการเข้าถึง Raspberry Pi Web Server

ขั้นตอนที่ 20: ภาคผนวก: ปัญหาคีย์ RSA

หากชื่อโฮสต์ที่เชื่อมโยงกับ mac เปลี่ยนไป MacBook ของฉันจะแสดงข้อความด้านล่างเมื่อฉันพยายามเข้าสู่ระบบ

$ ssh [email protected]

@ คำเตือน: การระบุโฮสต์ระยะไกลมีการเปลี่ยนแปลง! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@) @@@@@@@@@@@@@@@@@@@@@@@@@@@@ ตอนนี้อาจมีคนแอบฟังคุณอยู่ (การโจมตีแบบคนกลาง)! อาจเป็นไปได้ว่าเพิ่งเปลี่ยนรหัสโฮสต์ ลายนิ้วมือสำหรับคีย์ RSA ที่ส่งโดยโฮสต์ระยะไกลคือ eb:98:60:31:52:ac:7b:80:8e:8f:41:64:c1:11:f9:ef โปรดติดต่อผู้ดูแลระบบของคุณ เพิ่มโฮสต์คีย์ที่ถูกต้องใน /Users/jeffcartwright/.ssh/known_hosts เพื่อกำจัดข้อความนี้ คีย์ RSA ที่ละเมิดใน /Users/♣your-username♣/.ssh/known_hosts:16 คีย์โฮสต์ RSA สำหรับ 192.168.1.94 มีการเปลี่ยนแปลง และคุณได้ร้องขอการตรวจสอบอย่างเข้มงวด การยืนยันคีย์โฮสต์ล้มเหลว

มีวิธีแก้ไขที่ง่าย

เปิดหน้าต่างเทอร์มินัลของ MacBook และตัวแก้ไข vi

$ sudo vi /Users/♣your-username♣/.ssh/known_hosts

เข้าสู่ระบบด้วยรหัสผ่าน MacBook ของคุณ

รายการแรกคือแถวที่ 1 กดปุ่มลูกศรลง (16 - 1) จนกว่าคุณจะอยู่ใน 192.168.1.94 หรือ IP ใดก็ตามที่ข้อความแสดง

ประเภท (ลบบรรทัด เขียนไฟล์ และออก):

dd

:w!:NS!

ตอนนี้การเข้าสู่ระบบควรใช้งานได้

$ ssh [email protected]

หากระบบขอให้เชื่อมต่อต่อ ให้ยืนยันโดยพิมพ์ใช่

ไม่สามารถสร้างความถูกต้องของโฮสต์ '192.168.1.94 (192.168.1.94)'

ลายนิ้วมือของคีย์ RSA คือ eb:98:60:31:52:ac:7b:80:8e:8f:41:64:c1:11:f9:ef คุณแน่ใจหรือว่าต้องการเชื่อมต่อต่อ (ใช่/ไม่ใช่) ใช่ คำเตือน: เพิ่ม '192.168.1.94' (RSA) อย่างถาวรในรายการโฮสต์ที่รู้จัก

ขั้นตอนที่ 21: ภาคผนวก: ข้อมูลอ้างอิง

ข้อมูลอ้างอิง:

  • การ์ด Micro SD Raspberry Pi
  • เกณฑ์มาตรฐานการ์ด SD RPi.org
  • elinux.org เป็นมาตรฐานไมโคร SD การ์ด
  • ลิงก์ไปยังแนวทางการ์ด micro SD ของ Raspberry Pi
  • ลิงก์ไปยังการ์ด micro SD ที่รองรับ Raspberry Pi
  • RaspberryPi.org เบิร์นอิมเมจบนการ์ด micro SD
  • rip-clone เป็นสคริปต์ทุบตีเพื่อเขียนไปยังระบบไฟล์ที่ไม่ได้ขยายไปยังการ์ด SD USB
  • การมีส่วนร่วมของ Raspberry Pi.org fourdee4d ในเธรด

ขั้นตอนที่ 22: ภาคผนวก: อัปเดต

การปรับปรุงในอนาคตที่เป็นไปได้:

  • ลบขั้นตอน FTDI และแก้ไขไฟล์บนการ์ด microSD ในขณะที่ยังเสียบอยู่กับ MacBook

    ย้ายขั้นตอน FTDI ไปยังภาคผนวก

  • ติดตั้ง e2fsprogs บน MacBook
  • ใส่การ์ด micro SD ใน MacBook
  • ยกเลิกการต่อเชื่อมการ์ด micro SD
  • Zero เติมรูปภาพก่อนบีบอัด:

    e2fsck -E ทิ้ง src_fs

  • dd รูปภาพแล้ว gzip
  • เปรียบเทียบภาพที่เติมศูนย์กับภาพที่เติมไม่ศูนย์
  • คุ้มค่ากับความพยายามหรือไม่?

10FEB2017

ทำการเปลี่ยนแปลงเพื่อให้สอดคล้องกับขั้นตอนการติดตั้ง DietPi ล่าสุด

11มิ.ย. 2559

  • ลบภาคผนวกบน nmap และระบุ IPs
  • ใช้ชื่อโฮสต์.local

22 พ.ย. 2559

  • อัปเดตสำหรับเวอร์ชัน 136 ของ DietPi
  • อัปเดตสำหรับ Raspberry Pi 3

ขั้นตอนที่ 23: ภาคผนวก: การแก้ไขปัญหา

ขั้นตอนที่ 24: ภาคผนวก: สคริปต์การติดตั้งแบบไม่ต้องใส่ข้อมูล

จำเป็นต้องสร้างสคริปต์การติดตั้งแบบอัตโนมัติซึ่งดำเนินการตามขั้นตอนที่ 5-15 โดยอัตโนมัติ อัปโหลดแหล่งที่มาไปยัง GitHub ใช้ wget เพื่อดึงแหล่งวัตถุดิบจาก github แล้วรัน e script ปล่อยให้เปลี่ยนชื่อโฮสต์และรหัสผ่านจนกว่าจะถึงหลังสคริปต์ UAI อาจต้องรักษาสถานะไว้และทำการรีบูตหลายครั้ง

แนะนำ: