Raspberry Pi에서 Smashing 대시보드를 설정하는 방법

대부분의 설정을 자동화하는 OS로서 DietPi을 사용할 것입니다. 사용 가능한 64Bit 버전이 있지만 이 글을 쓰는 시점에서 Chromium을 설치할 수 없습니다.

DietPi를 설치하려면 해당 제품Guide을 따르십시오. 깜박임에는 RPi Imager을 사용했습니다.

이제 여기에 있어야 합니다.

첫 실행


Software Optimised 를 입력하고 Chromium를 선택한 다음(화살표와 스페이스바 사용) Enter 키를 누릅니다.
그런 다음 DietPi-Config -> Display Options -> Display Resolution로 이동하여 현재 화면 해상도를 선택합니다.
그런 다음 AutoStart Options 가 보일 때까지 돌아가서 Enter 키로 Chromium 를 선택하고 URL을 그대로 두고 사용자가 root 로 설정되어 있는지 확인하십시오. Exit 를 선택하여 끝까지 돌아갑니다.
그런 다음 Software Additional로 이동하여 Build-Essentials , Git , Node.JS 및 선택한 편집기를 선택합니다. Enter 키를 눌러 종료합니다. (Esc를 누르면 설정이 지워집니다.)
마지막으로 Install를 선택하고 마지막에 재부팅합니다.

크롬 설정



경우에 따라 Chromium의 창 크기가 해상도보다 작을 수 있습니다. 다음과 같이 보입니다.


이 문제를 해결하려면 /boot/dietpi.txt에 있는 파일에서 이러한 변수를 편집하고 적절한 해상도로 설정해야 합니다.

SOFTWARE_CHROMIUM_RES_X=1280
SOFTWARE_CHROMIUM_RES_Y=720


그 후 몇 가지 눈부신 문제를 해결하기 위해 크롬 자동 시작 스크립트를 수정해야 합니다. 여기에서 찾을 수 있습니다/var/lib/dietpi/dietpi-software/installed/chromium-autostart.sh.

CHROMIUM_OPTS="--kiosk --test-type --window-size=$RES_X,$RES_Y --start-fullscreen --start-maximized --window-position=0,0"


이 변수에 다음 옵션을 추가합니다.
  • --no-default-browser-check 기본 브라우저 확인을 비활성화합니다. 기본 브라우저 정보 표시줄을 표시하지 않으려는 UI/브라우저 테스트에 유용합니다.
  • --disable-component-update 크롬을 업데이트하거나 크롬을 업데이트할 수 없다는 팝업을 비활성화합니다.
  • --no-first-run 실제로 첫 번째 실행인지 여부에 관계없이 첫 번째 실행 작업을 건너뜁니다.

  • 명령줄 스위치에 대한 추가 정보here

    직전:

    xinit $FP_CHROMIUM $CHROMIUM_OPTS
    


    다음 명령을 추가하십시오.

    sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' ~/.config/chromium/'Local State'
    sed -i 's/"exited_cleanly":false/"exited_cleanly":true/; s/"exit_type":"[^"]\+"/"exit_type":"Normal"/' ~/.config/chromium/Default/Preferences
    


    이들은 로컬 크롬 설정에서 exited_cleanly 값을 설정하고 크롬에 ​​항상 정상적으로 종료되었음을 알려줍니다. 이것은 RaspberryPi이므로 Chromium이 직접 닫힐 수 있으며 "이전 세션 복원"팝업을 보고 싶지 않습니다.

    결국 다음과 같은 파일이 있어야 합니다.

    #!/bin/bash
    # Autostart run script for Kiosk mode, based on @AYapejian https://github.com/MichaIng/DietPi/issues/1737#issue-318697621
    # - Please see /root/.chromium-browser.init (and /etc/chromium.d/custom_flags) for additional egl/gl init options
    
    # Command line switches https://peter.sh/experiments/chromium-command-line-switches/
    # --test-type gets rid of some of the chromium warnings that you may or may not care about in kiosk on a LAN
    # --pull-to-refresh=1
    # --ash-host-window-bounds="400,300"
    
    # Resolution to use for kiosk mode should ideally match current system resolution
    RES_X=$(sed -n '/^[[:blank:]]*SOFTWARE_CHROMIUM_RES_X=/{s/^[^=]*=//p;q}' /boot/dietpi.txt)
    RES_Y=$(sed -n '/^[[:blank:]]*SOFTWARE_CHROMIUM_RES_Y=/{s/^[^=]*=//p;q}' /boot/dietpi.txt)
    
    CHROMIUM_OPTS="--kiosk --test-type --no-default-browser-check --no-first-run --disable-component-update --window-size=$RES_X,$RES_Y --start-fullscreen --start-maximized --window-position=0,0"
    # If you want tablet mode, uncomment the next line.
    #CHROMIUM_OPTS+=' --force-tablet-mode --tablet-ui'
    
    # Add URL for the first run:
    URL=$(sed -n '/^[[:blank:]]*SOFTWARE_CHROMIUM_AUTOSTART_URL=/{s/^[^=]*=//p;q}' /boot/dietpi.txt)
    CHROMIUM_OPTS+=" --homepage $URL"
    
    # Find absolute file path location of Chromium binary.
    FP_CHROMIUM=$(command -v chromium)
    if [[ ! $FP_CHROMIUM ]]; then
    
            # Assume RPi
            FP_CHROMIUM="$(command -v chromium-browser)"
    
    fi
    
    sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' ~/.config/chromium/'Local State'
    sed -i 's/"exited_cleanly":false/"exited_cleanly":true/; s/"exit_type":"[^"]\+"/"exit_type":"Normal"/' ~/.config/chromium/Default/Preferences
    
    xinit $FP_CHROMIUM $CHROMIUM_OPTS
    


    스매싱 설정



    Smashing은 멋진 대시보드를 구축할 수 있는 Sinatra 기반 프레임워크입니다. (그들의 문서에서)

    사용자dietpi(기본 사용자)로 로그인하고 다음 단계를 실행합니다.

    # Install ruby
    sudo apt install ruby-dev
    # Install gems
    sudo gem install smashing bundler
    # Generate sample project
    smashing new sample_dashboard
    cd sample_dashboard
    # Install dependencies
    bundle install
    # Run
    smashing start
    


    이제 localhost에서 연결하거나 포트 3030에서 Raspberry Pi의 LAN 주소를 사용하여 연결할 수 있어야 하며 다음과 같이 표시되어야 합니다.


    이제 작동하는 것을 알았으므로 대시보드를 자동 시작하는 서비스를 설정하고 부팅 시 링크를 로드하도록 chromium에 지시해야 합니다.

    다음을 포함하는 경로smashing.service/etc/systemd/system라는 파일을 만듭니다.

    [Unit]
    Description=Start Smashing Dashboard
    Before=graphical.target
    After=network.target remote-fs.target
    
    [Service]
    Type=exec
    Restart=always
    RestartSec=60
    TimeoutSec=5min
    KillMode=control-group
    GuessMainPID=no
    User=dietpi
    Group=dietpi
    WorkingDirectory=/home/dietpi/sample_dashboard
    ExecStart=/usr/local/bin/smashing start
    #ExecStop=/usr/local/bin/smashing stop
    PrivateTmp=true
    PrivateDevices=true
    ProtectSystem=full
    MountFlags=private
    NoNewPrivileges=true
    
    [Install]
    WantedBy=multi-user.target
    

    WorkingDirectory를 대시보드가 ​​있는 경로로 변경해야 합니다.
    서비스 옵션에 대한 추가 정보here

    그 후에 다음을 수행하십시오.

    # Reload the Daemon to see our changes
    sudo systemctl daemon-reload
    # Start smashing on boot
    sudo systemctl enable smashing
    


    그리고 Chromium이 로드하는 링크를 수정하려면 앱dietpi-config을 사용하여 TUI에서 수정하거나 SOFTWARE_CHROMIUM_AUTOSTART_URL에서 변수/boot/dietpi.txt를 수정하고 http://localhost:3030로 설정할 수 있습니다.

    이제 재부팅하면 부팅 시 대시보드 전체 화면이 자동으로 로드되며 최종 결과는 다음과 같습니다.

    스매싱에 대한 추가 정보here
    스매싱 서비스의 성능을 더 많이 제어하려면 dietpi-services를 사용할 수 있습니다.
    DietPi에는 RaspberryPi를 사용하여 삶을 훨씬 더 좋게 만드는 많은 도구가 있으며 더 자세히 살펴보는 것이 좋습니다.

    좋은 웹페이지 즐겨찾기