Jak mogę włączyć kamerę bez używania raspi-config?

18

Próbuję użyć kamery raspi na zminimalizowanej wersji wheezy. Polecenie raspi-confignie jest dostępne. Do tej pory byłem w stanie zrobić wszystko bez tego, edytując /boot/config.txtlub instalując brakujące oprogramowanie apt-get.

Niestety, gdziekolwiek spojrzę, wszystkie samouczki w kamerze (w tym oficjalna dokumentacja RaspiCam-Documentation.pdf) mówią, aby najpierw ją włączyć raspi-config. Więc, co to raspi-config faktycznie do Pi że mogę odtworzyć ręcznie?

Ośmiornica
źródło
Do twojej wiadomości Używanie start_x = 1 w config.txt zatrzymuje mój Xbian przed uruchomieniem i powoduje uszkodzenie karty SD, co oznacza, że ​​cały nowy obraz musi zostać sflashowany na kartę SD.
gazhay

Odpowiedzi:

12

DOBRZE. raspi-config to właściwie trochę bash, więc łatwo jest zobaczyć, co robi:

# $1 is 0 to disable camera, 1 to enable it
set_camera() {
  # Stop if /boot is not a mountpoint
  if ! mountpoint -q /boot; then
    return 1
  fi

  [ -e /boot/config.txt ] || touch /boot/config.txt

  if [ "$1" -eq 0 ]; then # disable camera
    set_config_var start_x 0 /boot/config.txt
    sed /boot/config.txt -i -e "s/^startx/#startx/"
    sed /boot/config.txt -i -e "s/^start_file/#start_file/"
    sed /boot/config.txt -i -e "s/^fixup_file/#fixup_file/"
  else # enable camera
    set_config_var start_x 1 /boot/config.txt
    CUR_GPU_MEM=$(get_config_var gpu_mem /boot/config.txt)
    if [ -z "$CUR_GPU_MEM" ] || [ "$CUR_GPU_MEM" -lt 128 ]; then
      set_config_var gpu_mem 128 /boot/config.txt
    fi
    sed /boot/config.txt -i -e "s/^startx/#startx/"
    sed /boot/config.txt -i -e "s/^fixup_file/#fixup_file/"
  fi
}

Najwyraźniej w /boot/config.txt jest wpis o nazwie start_x, który musi być ustawiony na 1, aby włączyć kamerę, Musi też być co najmniej 128 MB pamięci dla gpu (gpu_mem). Podwójne sprawdzenie wydaje się to potwierdzać.

Fred
źródło
2
Oto pełny kod źródłowy , na wypadek, gdyby ktoś był zainteresowany. Wygląda na to, że funkcja została teraz wywołana do_camera.
Cerin,
11

edytuj plik /boot/config.txt i upewnij się, że następujące linie wyglądają tak:

start_x=1             # essential
gpu_mem=128           # at least, or maybe more if you wish
disable_camera_led=1  # optional, if you don't want the led to glow

restart

Ośmiornica
źródło
6

To, co robi raspi-config, zmienia /boot/config.txt. W pliku znajduje się ciąg informujący o start_x=0wyłączeniu aparatu. Zmieniając to start_x=1, włączymy kamerę. Po edycji pliku będziesz musiał ponownie uruchomić komputer.

Stworzyłem skrypt, który wyszukuje /boot/config.txtciąg „start_x = 0”, a jeśli go znajdzie, zmienia go na „start_x = 1”. Użyj następującego kodu i nie zapomnij chmod + x i uruchom z sudo.

#!/bin/bash
grep "start_x=1" /boot/config.txt
if grep "start_x=1" /boot/config.txt
then
        exit
else
        sed -i "s/start_x=0/start_x=1/g" /boot/config.txt
        reboot
fi
exit
Diego
źródło
+1 Do czego służy pierwszy grep? I czy jest możliwe, że przed pierwszym uruchomieniem nie ma takiej linii jak start_x=*?
Gabber
Pierwszy grep może być przydatny do celów debugowania. Nie jest wymagane do działania skryptu. W moim pliku Raspbian stretch config.txt nie mogę znaleźć start_xlinii config.txt, więc ten skrypt nie będzie działał tak jak jest.
Diomidis Spinellis,