Wie kann ich die Kamera aktivieren, ohne raspi-config zu verwenden?

18

Ich versuche, die Raspi-Kamera bei einer minimierten Version von Wheezy zu verwenden. Der Befehl raspi-configist nicht verfügbar. Bisher konnte ich alles ohne es tun, indem ich /boot/config.txtfehlende Software mit bearbeitete oder installierte apt-get.

Leider sagen alle Tutorials auf der Kamera (einschließlich der offiziellen RaspiCam-Dokumentation.pdf), dass ich sie zuerst aktivieren soll raspi-config. Also, was macht raspi-config eigentlich mit dem Pi, das ich manuell reproduzieren kann?

Tintenfisch
quelle
FYI Mit start_x = 1 in config.txt kann mein xbian nicht mehr booten und die SD-Karte wird beschädigt. Dies bedeutet, dass ein ganz neues Image auf die SD-Karte geflasht werden muss.
Gazhay

Antworten:

12

OKAY. raspi-config ist eigentlich ein bisschen bash, also ist es ziemlich einfach zu sehen, was es macht:

# $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
}

Anscheinend gibt es in /boot/config.txt einen Eintrag namens start_x, der auf 1 gesetzt werden muss, um die Kamera zu aktivieren. Außerdem müssen mindestens 128 MB Arbeitsspeicher für die GPU (GPU_MEM) vorhanden sein. Doppelte Prüfung scheint es zu bestätigen.

Fred
quelle
2
Ist hier der volle Quellcode , falls jemand interessiert ist. Die Funktion scheint jetzt aufgerufen zu werden do_camera.
Cerin
11

Bearbeiten Sie Ihre Datei /boot/config.txt und stellen Sie sicher, dass die folgenden Zeilen so aussehen:

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

neustarten

Tintenfisch
quelle
6

Was raspi-config macht, ist das Ändern der /boot/config.txt. In dieser Datei befindet sich eine Zeichenfolge, die angibt, start_x=0wann die Kamera deaktiviert ist. Wenn Sie dies ändern, start_x=1wird die Kamera aktiviert. Sie müssen neu starten, nachdem Sie die Datei bearbeitet haben.

Ich habe ein Skript erstellt, das /boot/config.txtnach der Zeichenfolge "start_x = 0" sucht und diese in "start_x = 1" ändert. Verwenden Sie den folgenden Code und vergessen Sie nicht, chmod + x zu verwenden und mit sudo auszuführen.

#!/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
quelle
+1 Wofür ist der erste Grep? Und ist es möglich, dass es vor dem ersten Start keine Leitung gibt wie start_x=*?
Gabber
Das erste grep kann zu Debugging-Zwecken nützlich sein. Es ist für die Ausführung des Skripts nicht erforderlich. In meiner Raspbian stretch config.txt-Datei kann ich keine start_xZeile finden config.txt, daher funktioniert dieses Skript nicht wie es ist.
Diomidis Spinellis