Làm thế nào để tắt Raspberry Pi một cách an toàn?


30

Thông thường với một máy tính để bàn, nếu tôi chạy sudo shutdown -P now, máy tính sẽ tắt hoàn toàn và tôi có thể bật lại bằng một nút. (Tương tự như vậy, nếu máy tính gặp sự cố, tôi có thể buộc khởi động lại bằng cách giữ nút nguồn trong 5 giây hoặc lâu hơn.)

Raspberry Pi không có nút nguồn. Trong thực tế, nếu tôi chạy sudo shutdown -P now, đèn led vẫn có vẻ vẫn bật và để khởi động lại, tôi dường như cần rút phích cắm và cắm lại. Điều này có vẻ hơi giống với "Bây giờ an toàn để tắt máy tính của bạn" trong các phiên bản Windows cũ.

Tại điểm nào an toàn để rút phích cắm trên Raspberry Pi? Tôi có làm điều gì sai?


2
Đèn led đỏ chỉ cho biết rằng oi đang nhận được sức mạnh. Cái bạn muốn chú ý là cái màu xanh lá cây. Nếu nó nhấp nháy nghĩa là oi đang truy cập thẻ nhớ microSD. Khi bạn tắt máy xem nó. Nó sẽ flash 4-10 lần. Một khi điều này xảy ra, nó là an toàn để rút phích cắm.
TheXed

1
Với điều kiện thẻ SD của bạn được định dạng trong ext4 (hoặc FS tạp chí khác), thật sự an toàn hơn hoặc ít hơn để tắt nó bất cứ khi nào pi chỉ ngồi yên. Ít nhất là an toàn hơn là chỉ tắt một máy tính Windows95. (Không phải tôi khuyên bạn nên sử dụng nó cho bất kỳ ứng dụng quan trọng nào về an toàn ... nhưng dù sao thì một pi không thực sự lý tưởng.)
leftaroundabout 21/2/2016

4
@leftaroundabout, ghi nhật ký không làm được gì nhiều khi phương tiện cơ bản không thể xử lý sự cố mất điện một cách sạch sẽ. Tôi thường xuyên cần định dạng lại thẻ SD của mình sau khi mất điện.
Đánh dấu

@Mark: có thể. Tôi có một pi mà tôi thường không được cấp nguồn một cách không an toàn mà không có biến chứng, nhưng thực tế thì cái này chỉ sử dụng thẻ cho bộ tải khởi động và có mọi thứ khác trên ổ cứng USB.
rẽ trái

@Mark Nó cũng không có nghĩa gì nhiều khi ở giữa một dữ liệu ghi. Bạn vẫn sẽ mất dữ liệu của bạn. Nó chỉ đảm bảo tính nhất quán của hệ thống tập tin ,.
Bob

Câu trả lời:


18

Bạn không làm gì sai cả.

Đèn LED hoạt động sẽ nhấp nháy 3 hoặc 4 lần ngay trước khi tắt nguồn. Sau đó là an toàn để loại bỏ sức mạnh.

Tôi thường tắt máy, đi trong vài phút và sau đó rút dây nguồn ra.


15

Bạn không cần phải tháo nguồn để khởi động lại Pi. Có một cặp miếng đệm gần Thẻ SD (Tôi nghĩ rằng thiết lập lại có nhãn có thể chạy - Tôi không thể nhìn thấy trên Pi của mình vì tất cả chúng đều được hàn trên bảng.) Ngay lập tức để khởi động lại.

Rasbpian gần đây có một quy trình được xây dựng để tắt máy (xử lý bởi systemd-logind)

Thêm vào đây /boot/config.txt

dtoverlay=gpio-shutdown,gpio_pin=5

Điều này cho phép một công tắc được kết nối giữa chân 29 (GPIO 5) và chân 30 (Gnd) để bắt đầu tắt Pi theo thứ tự.

Hầu như bất kỳ mã pin nào cũng có thể được sử dụng - mặc định là chân 5 (GPIO 3), mặc dù mã này thường được sử dụng cho I²C ,gpio_pin=21sẽ sử dụng cùng các chân được sử dụng trong mã script 40 (GPIO 21) và chân 39 (Gnd)

Tôi khuyên bạn nên sudo powerofftắt Pi. Không có gì sai với những gì bạn đang làm, nhưng powerofflàm cho đèn LED xanh nhấp nháy 10 lần trong khoảng thời gian 1 giây khi an toàn để tắt nguồn.

Tôi có một tập lệnh Python tắt Pi bằng một nút bấm.

#!/usr/bin/env python2.7
#-------------------------------------------------------------------------------
# Name:         Shutdown Daemon
#
# Purpose:      This program gets activated at the end of the boot process by
#               cron. (@ reboot sudo python /home/pi/shutdown_daemon.py)
#               It monitors a button press. If the user presses the button, we
#               Halt the Pi, by executing the poweroff command.
#
#               The power to the Pi will then be cut when the Pi has reached the
#               poweroff state (Halt).
#               To activate a gpio pin with the poweroff state, the
#               /boot/config.txt file needs to have :
#               dtoverlay=gpio-poweroff,gpiopin=27
#
# Author:      Paul Versteeg
#
# Created:     15-06-2015, revised on 18-12-2015
# Copyright:   (c) Paul 2015
# https://www.raspberrypi.org/forums/viewtopic.php?p=864409#p864409
#-------------------------------------------------------------------------------

import RPi.GPIO as GPIO
import subprocess
import time

GPIO.setmode(GPIO.BCM) # use GPIO numbering
GPIO.setwarnings(False)

# I use the following two GPIO pins because they are next to each other,
# and I can use a two pin header to connect the switch logic to the Pi.
# INT = 17    # GPIO-17 button interrupt to shutdown procedure
# KILL = 27   # GPIO-27 /KILL : this pin is programmed in /boot/config.txt and cannot be used by any other program
INT = 21    # GPIO button interrupt to shutdown procedure

# use a weak pull_up to create a high
GPIO.setup(INT, GPIO.IN, pull_up_down=GPIO.PUD_UP)

def main():

    while True:
        # set an interrupt on a falling edge and wait for it to happen
        GPIO.wait_for_edge(INT, GPIO.FALLING)
#       print "button pressed"
        time.sleep(1)   # Wait 1 second to check for spurious input
        if( GPIO.input(INT) == 0 ) :
            subprocess.call(['poweroff'], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

if __name__ == '__main__':
    main()

Bạn có thể thêm mã python đó để tham khảo không, và nếu tôi cung cấp nguồn điện thì nó sẽ tự động khởi động pi hay không?
Gaurav Dave

4

Không ai có vẻ đã trả lời câu hỏi này: "Tại thời điểm nào an toàn để rút phích cắm trên Raspberry Pi?"

Để tắt máy đúng cách, bạn chạy

sudo shutdown

Khi bạn thực hiện việc này, bạn sẽ thấy đèn "ACT" (đèn xanh lục) nhấp nháy liên tục 10 lần (cách nhau 0,5 giây). Khi nó dừng nhấp nháy, đèn xanh sẽ tắt. Tại thời điểm này, an toàn để tháo nguồn hoặc rút phích cắm.

Đèn đỏ sẽ duy trì miễn là có nguồn điện áp vào Pi.

Sau khi tắt máy, bạn phải tháo nguồn và sau đó cấp lại nguồn để cấp nguồn cho Pi.


2

Như các câu trả lời trước đã nêu, led đỏ có nghĩa là pi đang nhận được sức mạnh trong khi led xanh là hoạt động (tôi tin rằng hoạt động của đĩa)

bạn có thể rút phích cắm khi đèn led xanh ngừng nhấp nháy sau lệnh tắt hoặc bạn có thể rút ngắn các miếng đệm chạy / đặt lại trên bảng

Đây trang web có một hướng dẫn tuyệt vời về cách để thêm một switch hard reset nếu sẵn sàng của bạn để hàn một vài chân.

Nếu bạn sử dụng thiết lập lại cứng, hãy chắc chắn chỉ sử dụng nó sau khi tạm dừng hoặc tắt hệ thống hoặc là biện pháp cuối cùng vì nó ngay lập tức khởi động lại bộ xử lý, nếu bạn đang ghi vào thẻ SD thì bạn có khả năng bị hỏng chỉ như mất điện trong khi nó chạy


2

Đây là một kịch bản python tắt máy thực sự đơn giản.

import RPi.GPIO as GPIO 
import os 
channel=11 
GPIO.setmode(GPIO.BOARD) 
#Pin 11 & Gnd 

GPIO.setup(channel, GPIO.IN, pull_up_down=GPIO.PUD_UP) 
GPIO.wait_for_edge(channel, GPIO.FALLING) 
os.system("sudo shutdown -h now")
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.