Difference between revisions of "Installing Video/Audio device"
| (13 intermediate revisions by one other user not shown) | |||
| Line 24: | Line 24: | ||
Then, extract the 'rk3399-eflasher-friendlydesktop-bionic-4.4-arm64-20190718.img' file and flash it through balenaEtcher to a (minimum 16GB) SD card. | Then, extract the 'rk3399-eflasher-friendlydesktop-bionic-4.4-arm64-20190718.img' file and flash it through balenaEtcher to a (minimum 16GB) SD card. | ||
| + | |||
| + | Insert both the eMMC module and the SD card on the NanoPI M4 device, and power on it. Connect a monitor and a keyboard/mouse to the device, and flash the eMMC module. Then remove the SD card and restart it. | ||
=== Software === | === Software === | ||
| Line 36: | Line 38: | ||
apt-get install libreoffice | apt-get install libreoffice | ||
apt-get install smbclient | apt-get install smbclient | ||
| + | apt-get install dos2unix | ||
| + | |||
| + | Maybe vlc should be started with the command: | ||
| + | |||
| + | vlc --vout x11 | ||
| + | |||
| + | === Configuration === | ||
Then configure the board: | Then configure the board: | ||
| Line 50: | Line 59: | ||
From the GUI, configure the audio via the left-top corner icon. Both the devices listed should be set to 'analog audio' and set to active. | From the GUI, configure the audio via the left-top corner icon. Both the devices listed should be set to 'analog audio' and set to active. | ||
| − | + | Transfer your background (1920x1080) and, with right-click on the desktop, select desktop preferences and set the background image. | |
| + | |||
| + | Icons: | ||
| + | |||
| + | * From a terminal, go to '/home/pi/desktop' and move the unneeded files; | ||
| + | * from the left-top menu, select the needed icons and right-click, then select 'add to desktop'. | ||
| + | |||
| + | === VNC === | ||
| + | |||
| + | Command to run x11vnc: | ||
| + | |||
| + | x11vnc -auth /var/run/lightdm/root/:0 -loop | ||
| + | |||
| + | === Remote and local storage === | ||
| + | |||
| + | Create a local link to the desktop for the (optional) local storage: | ||
| + | |||
| + | ln -s /local /home/pi/Desktop/localstorage | ||
| + | |||
| + | /xxxx is the path of the local storage, maybe this should be mounted with the usual command | ||
| + | |||
| + | mkdir /local | ||
| + | mount /dev/xyz /local | ||
| + | |||
| + | Create a remote link to the desktop for the remote storage: | ||
| + | |||
| + | mkdir /remote | ||
| + | mount -t cifs //<IP>/<DIR> /remote -o username=<X>,password=<Y>,vers=2.0 | ||
| + | ln -s /remote /home/pi/Desktop/remotestorage | ||
| + | |||
| + | Use this script | ||
| + | |||
| + | #!/bin/sh | ||
| + | |||
| + | POINT=`cat /root/eywa/storage.cfg | grep POINT | sed -e s/POINT=//` | ||
| + | MOUNT=`cat /root/eywa/storage.cfg | grep MOUNT | sed -e s/MOUNT=//` | ||
| + | USER=`cat /root/eywa/storage.cfg | grep USER | sed -e s/USER=//` | ||
| + | PASSWORD=`cat /root/eywa/storage.cfg | grep PASSWORD | sed -e s/PASSWORD=//` | ||
| + | MOUNTED=`df ${POINT} --output=target | tail -1` | ||
| + | |||
| + | if [ "x${MOUNT}x" != "xx" -a "x${MOUNTED}x" != "x${POINT}x" ] | ||
| + | then | ||
| + | echo "Not mounted, mounting..." | ||
| + | if [ "x${USER}x" = "xx" ] | ||
| + | then | ||
| + | mount -t cifs ${MOUNT} ${POINT} | ||
| + | else | ||
| + | mount -t cifs ${MOUNT} -o username=${USER},password=${PASSWORD} ${POINT} | ||
| + | fi | ||
| + | sleep 1 | ||
| + | NEWMOUNTED=`df | grep ${POINT} | wc -l` | ||
| + | echo "Newmounted = ${NEWMOUNTED}" | ||
| + | if [ ${NEWMOUNTED} = 1 ] | ||
| + | then | ||
| + | echo "Killing processes for logging" | ||
| + | killall node | ||
| + | killall CaptureImage1 | ||
| + | fi | ||
| + | fi | ||
| + | |||
| + | and this configuration file | ||
| + | |||
| + | POINT=/mnt | ||
| + | MOUNT=//10.10.10.151/xxx | ||
| + | USER=fabio | ||
| + | PASSWORD=xxxxxxx | ||
| + | |||
| + | to mount shared folder at boot, the /etc/crontab line should look like this | ||
| + | |||
| + | * * * * * root /root/mountstorage.sh | ||
| + | |||
| + | Then go to /home/pi/Desktop and execute | ||
| + | |||
| + | ln -s /mnt share | ||
| + | |||
| + | === Start at boot === | ||
| + | |||
| + | Create the file /etc/systemd/system/x11vnc.service: | ||
| + | |||
| + | [Unit] | ||
| + | Description="x11vnc" | ||
| + | Requires=display-manager.service | ||
| + | After=display-manager.service | ||
| + | |||
| + | [Service] | ||
| + | ExecStart=/usr/bin/x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth guess -rfbauth /etc/x11vnc.pass | ||
| + | ExecStop=/usr/bin/killall x11vnc | ||
| + | Restart=on-failure | ||
| + | Restart-sec=2 | ||
| + | |||
| + | [Install] | ||
| + | WantedBy=multi-user.target | ||
| + | |||
| + | Then, enable it: | ||
| + | |||
| + | systemctl enable x11vnc.service | ||
| + | |||
| + | Create a password | ||
| + | |||
| + | x11vnc -storepasswd | ||
| + | |||
| + | and copy it to the /etc/x11vnc.pass file | ||
| + | |||
| + | cp /root/.vnc/passwd /etc/x11vnc.pass | ||
| + | |||
| + | === Disable screen === | ||
| + | |||
| + | Go to the menu, and then to Preferences - Light Locker settings. Disable it. | ||
| + | |||
| + | You should create a script that executes this command: | ||
| + | |||
| + | xset dpms force off | ||
| + | |||
| + | If the monitor is seeking for a signal, maybe it will we reactivated in seconds. So, maybe you have to do a script that repeats the same command every second until the monitor gives up searching. | ||
| + | |||
| + | In order to prevent to accidentally log-out (and make it impossible to reconnect again), edit the file | ||
| + | |||
| + | /home/pi/.config/lxpanel/LXDE/panels/panel | ||
| + | |||
| + | and comment the last stanza: | ||
| + | |||
| + | #Plugin { | ||
| + | # type=launchbar | ||
| + | # Config { | ||
| + | # Button { | ||
| + | # id=lxde-screenlock.desktop | ||
| + | # } | ||
| + | # Button { | ||
| + | # id=lxde-logout.desktop | ||
| + | # } | ||
| + | # } | ||
| + | #} | ||
| + | |||
| + | Create the script disable.sh | ||
| + | |||
| + | #!/bin/sh | ||
| + | |||
| + | END=30 | ||
| + | |||
| + | for i in $(seq 1 ${END}) | ||
| + | do | ||
| + | xset dpms force off | ||
| + | sleep 1 | ||
| + | echo "." | ||
| + | done | ||
| + | |||
| + | and create a symbolic link in the Desktop | ||
| + | |||
| + | ln -s /root/disable.sh /home/pi/Desktop/disable.desktop | ||
| + | |||
| + | == Mount and share NVMe == | ||
| + | |||
| + | Create partition and file system: | ||
| + | |||
| + | fdisk /dev/nvme0n1 | ||
| + | |||
| + | apt-get install xfsprogs | ||
| + | mkfs -t xfs /dev/nvme0n1p1 | ||
| + | |||
| + | Create directory and mount it | ||
| + | |||
| + | mkdir /home/pi/Desktop/shared | ||
| + | blkid | ||
| + | |||
| + | Extract UUID and edit /etc/fstab | ||
| + | |||
| + | UUID=the_uuid /home/pi/Desktop/shared xfs defaults 0 0 | ||
| + | |||
| + | Install and configure samba | ||
| + | |||
| + | apt-get install samba | ||
| + | |||
| + | Edit /etc/samba/smb.conf and add | ||
| + | |||
| + | [shared] | ||
| + | path = /home/pi/Desktop/shared | ||
| + | read only = no | ||
| + | guest ok = yes | ||
| + | |||
| + | Make it accessible | ||
| + | |||
| + | cd / | ||
| + | chmod 777 home | ||
| + | cd home | ||
| + | chmod 777 pi | ||
| + | cd pi | ||
| + | chmod 777 Desktop | ||
| + | cd Desktop | ||
| + | chmod 777 shared | ||
Latest revision as of 23:13, 3 December 2021
Contents
Installing Video/Audio device[edit]
The chosen device is a Nanopi M4 from FriendlyElec.
Estimated hardware costs:
Per device: $ 80.97, including:
- Board;
- Power adapter and cable;
- Heat sink;
- EMMC module (16GB);
- American/European adapter.
Plus, shipping costs ($ 11.00).
In the case of fast and secure shipping with DHL (recommended), an average of $ 5.00, plus the VAT on the entire costs will be added.
Total cost: € 85 (plus VAT) per piece.
Installation[edit]
Download the 'Official-ROMs-eMMC-20190718.7z' file from the FriendlyArm Google repository (about 16GB).
Then, extract the 'rk3399-eflasher-friendlydesktop-bionic-4.4-arm64-20190718.img' file and flash it through balenaEtcher to a (minimum 16GB) SD card.
Insert both the eMMC module and the SD card on the NanoPI M4 device, and power on it. Connect a monitor and a keyboard/mouse to the device, and flash the eMMC module. Then remove the SD card and restart it.
Software[edit]
Connect via SSH, and install the required modules.
apt-get update apt-get install x11vnc apt-get install vlc apt-get install clementine apt-get install shotwell apt-get install libreoffice apt-get install smbclient apt-get install dos2unix
Maybe vlc should be started with the command:
vlc --vout x11
Configuration[edit]
Then configure the board:
npi-config
Set:
- timezone;
- language;
- name of the device;
- audio device.
From the GUI, configure the audio via the left-top corner icon. Both the devices listed should be set to 'analog audio' and set to active.
Transfer your background (1920x1080) and, with right-click on the desktop, select desktop preferences and set the background image.
Icons:
- From a terminal, go to '/home/pi/desktop' and move the unneeded files;
- from the left-top menu, select the needed icons and right-click, then select 'add to desktop'.
VNC[edit]
Command to run x11vnc:
x11vnc -auth /var/run/lightdm/root/:0 -loop
Remote and local storage[edit]
Create a local link to the desktop for the (optional) local storage:
ln -s /local /home/pi/Desktop/localstorage
/xxxx is the path of the local storage, maybe this should be mounted with the usual command
mkdir /local mount /dev/xyz /local
Create a remote link to the desktop for the remote storage:
mkdir /remote mount -t cifs //<IP>/<DIR> /remote -o username=<X>,password=<Y>,vers=2.0 ln -s /remote /home/pi/Desktop/remotestorage
Use this script
#!/bin/sh
POINT=`cat /root/eywa/storage.cfg | grep POINT | sed -e s/POINT=//`
MOUNT=`cat /root/eywa/storage.cfg | grep MOUNT | sed -e s/MOUNT=//`
USER=`cat /root/eywa/storage.cfg | grep USER | sed -e s/USER=//`
PASSWORD=`cat /root/eywa/storage.cfg | grep PASSWORD | sed -e s/PASSWORD=//`
MOUNTED=`df ${POINT} --output=target | tail -1`
if [ "x${MOUNT}x" != "xx" -a "x${MOUNTED}x" != "x${POINT}x" ]
then
echo "Not mounted, mounting..."
if [ "x${USER}x" = "xx" ]
then
mount -t cifs ${MOUNT} ${POINT}
else
mount -t cifs ${MOUNT} -o username=${USER},password=${PASSWORD} ${POINT}
fi
sleep 1
NEWMOUNTED=`df | grep ${POINT} | wc -l`
echo "Newmounted = ${NEWMOUNTED}"
if [ ${NEWMOUNTED} = 1 ]
then
echo "Killing processes for logging"
killall node
killall CaptureImage1
fi
fi
and this configuration file
POINT=/mnt MOUNT=//10.10.10.151/xxx USER=fabio PASSWORD=xxxxxxx
to mount shared folder at boot, the /etc/crontab line should look like this
* * * * * root /root/mountstorage.sh
Then go to /home/pi/Desktop and execute
ln -s /mnt share
Start at boot[edit]
Create the file /etc/systemd/system/x11vnc.service:
[Unit] Description="x11vnc" Requires=display-manager.service After=display-manager.service [Service] ExecStart=/usr/bin/x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth guess -rfbauth /etc/x11vnc.pass ExecStop=/usr/bin/killall x11vnc Restart=on-failure Restart-sec=2 [Install] WantedBy=multi-user.target
Then, enable it:
systemctl enable x11vnc.service
Create a password
x11vnc -storepasswd
and copy it to the /etc/x11vnc.pass file
cp /root/.vnc/passwd /etc/x11vnc.pass
Disable screen[edit]
Go to the menu, and then to Preferences - Light Locker settings. Disable it.
You should create a script that executes this command:
xset dpms force off
If the monitor is seeking for a signal, maybe it will we reactivated in seconds. So, maybe you have to do a script that repeats the same command every second until the monitor gives up searching.
In order to prevent to accidentally log-out (and make it impossible to reconnect again), edit the file
/home/pi/.config/lxpanel/LXDE/panels/panel
and comment the last stanza:
#Plugin {
# type=launchbar
# Config {
# Button {
# id=lxde-screenlock.desktop
# }
# Button {
# id=lxde-logout.desktop
# }
# }
#}
Create the script disable.sh
#!/bin/sh
END=30
for i in $(seq 1 ${END})
do
xset dpms force off
sleep 1
echo "."
done
and create a symbolic link in the Desktop
ln -s /root/disable.sh /home/pi/Desktop/disable.desktop
[edit]
Create partition and file system:
fdisk /dev/nvme0n1
apt-get install xfsprogs mkfs -t xfs /dev/nvme0n1p1
Create directory and mount it
mkdir /home/pi/Desktop/shared blkid
Extract UUID and edit /etc/fstab
UUID=the_uuid /home/pi/Desktop/shared xfs defaults 0 0
Install and configure samba
apt-get install samba
Edit /etc/samba/smb.conf and add
[shared] path = /home/pi/Desktop/shared read only = no guest ok = yes
Make it accessible
cd / chmod 777 home cd home chmod 777 pi cd pi chmod 777 Desktop cd Desktop chmod 777 shared