mirror of https://github.com/OpenIPC/wiki.git
				
				
				
			
							parent
							
								
									c71b4c8cf6
								
							
						
					
					
						commit
						8a28d3b7f3
					
				|  | @ -1,40 +1,40 @@ | |||
| Download Ubuntu Server ISO and flash to device  -- https://github.com/Joshua-Riek/ubuntu-rockchip | ||||
| 
 | ||||
| 	sudo apt update | ||||
| 	sudo apt upgrade	 | ||||
| `sudo apt update` | ||||
| 
 | ||||
| `sudo apt upgrade` | ||||
| 
 | ||||
| Go ahead and pull some packages we will need, too. | ||||
| 
 | ||||
| 	sudo apt install dkms python3-all-dev fakeroot network-manager | ||||
| `sudo apt install dkms python3-all-dev fakeroot network-manager` | ||||
| 
 | ||||
| 
 | ||||
| ------------------------------------------------------------------------------------------- | ||||
| *** | ||||
| 
 | ||||
| Gsteamer setup with MPP | ||||
| 
 | ||||
| 
 | ||||
| Download and install gstreamer | ||||
| 
 | ||||
| 	sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 | ||||
| `sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Download and install rockchip mpp, rga, and gstreamer plugin from an included custom PPA, for hardware accelerated decoding. | ||||
| 
 | ||||
| 	sudo apt install gstreamer1.0-rockchip1 librga-dev librga2 librockchip-mpp-dev librockchip-mpp1 librockchip-vpu0 libv4l-rkmpp rockchip-multimedia-config libgl4es libgl4es-dev libdri2to3 | ||||
| `sudo apt install gstreamer1.0-rockchip1 librga-dev librga2 librockchip-mpp-dev librockchip-mpp1 librockchip-vpu0 libv4l-rkmpp rockchip-multimedia-config libgl4es libgl4es-dev libdri2to3` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| test with: | ||||
| 
 | ||||
| 	gst-inspect-1.0 | grep 265 | ||||
| `gst-inspect-1.0 | grep 265` | ||||
| 
 | ||||
| 	gst-inspect-1.0 | grep mpp | ||||
| `gst-inspect-1.0 | grep mpp` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ----------------------------------------------------------------------- | ||||
| *** | ||||
| 
 | ||||
| rtl8812au drivers installation | ||||
| 
 | ||||
|  | @ -50,38 +50,47 @@ enter the following line-by-line | |||
| 	EOF" | ||||
| 
 | ||||
| 
 | ||||
| 	git clone -b v5.2.20 https://github.com/svpcom/rtl8812au.git | ||||
| 	cd rtl8812au/ | ||||
| 	sudo ./dkms-install.sh | ||||
| 
 | ||||
| `git clone -b v5.2.20 https://github.com/svpcom/rtl8812au.git` | ||||
| 
 | ||||
| ``cd rtl8812au/`` | ||||
| 
 | ||||
| `sudo ./dkms-install.sh` | ||||
| 
 | ||||
| 
 | ||||
| --------------------------------------------------------------------- | ||||
| *** | ||||
| 
 | ||||
| 
 | ||||
| reboot device  | ||||
| 
 | ||||
| TODO: or figure out how to load the driver without a full reboot. Try "modprobe rtl8812au" | ||||
| TODO: or figure out how to load the driver without a full reboot. Try "modprobe 88xxau" | ||||
| 
 | ||||
| 
 | ||||
| ---------------------------------------------------------------------- | ||||
| *** | ||||
| 
 | ||||
| WFB-ng installation | ||||
| 
 | ||||
| 
 | ||||
| find wifi device name using iwconfig and substitute it for $WLAN in the script install | ||||
| 
 | ||||
| 	git clone -b stable https://github.com/svpcom/wfb-ng.git | ||||
| 	cd wfb-ng | ||||
| 	sudo ./scripts/install_gs.sh $WLAN | ||||
| `git clone -b stable https://github.com/svpcom/wfb-ng.git` | ||||
| 
 | ||||
| `cd wfb-ng` | ||||
| 
 | ||||
| `sudo ./scripts/install_gs.sh $WLAN` | ||||
| 
 | ||||
| 
 | ||||
| after install: | ||||
| 
 | ||||
| 	sudo systemctl enable wifibroadcast | ||||
| 
 | ||||
| `sudo systemctl enable wifibroadcast` | ||||
| 
 | ||||
| 
 | ||||
| then | ||||
| 
 | ||||
| 	sudo nano /etc/wifibroadcast.cfg | ||||
| 
 | ||||
| `sudo nano /etc/wifibroadcast.cfg` | ||||
| 
 | ||||
| 
 | ||||
| change the channel to match the vtx | ||||
| 
 | ||||
|  | @ -94,101 +103,105 @@ Copy drone.key from the wfb-ng directory to the vtx's /etc directory | |||
| 
 | ||||
| example using scp, replace x.x.x.x with the camera's ip address | ||||
| 
 | ||||
| 	scp drone.key root@x.x.x.x:/etc | ||||
| 
 | ||||
| `scp drone.key root@x.x.x.x:/etc` | ||||
| 
 | ||||
| 
 | ||||
| Make sure gs.key was automatically put in /etc on the VRX side | ||||
| 
 | ||||
| 	ls /etc/gs.key | ||||
| `ls /etc/gs.key` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| --------------------------------------------------------------------- | ||||
| *** | ||||
| 
 | ||||
| 
 | ||||
| reboot device again | ||||
| 
 | ||||
| 
 | ||||
| ---------------------------------------------------------------------- | ||||
| *** | ||||
| 
 | ||||
| test the connection: | ||||
| 
 | ||||
| on the groundstation run | ||||
| 
 | ||||
|  	sudo systemctl enable wifibroadcast@gs | ||||
| 	sudo systemctl start wifibroadcast@gs | ||||
| 	wfb-cli gs | ||||
|  `sudo systemctl enable wifibroadcast@gs` | ||||
|   | ||||
| `sudo systemctl start wifibroadcast@gs` | ||||
| 
 | ||||
| `wfb-cli gs` | ||||
| 
 | ||||
| 
 | ||||
| Plug in the camera and watch the packets come in, xlost should stay near zero while xrecv should go up | ||||
| 
 | ||||
| 
 | ||||
| ----------------------------------------------------------------- | ||||
| *** | ||||
| 
 | ||||
| 
 | ||||
| graphical environment for gstreamer playback | ||||
| 
 | ||||
| 
 | ||||
| 	sudo apt install xorg | ||||
| 	sudo apt install --no-install-recommends lightdm-gtk-greeter | ||||
| 	sudo apt install --no-install-recommends lightdm | ||||
| 	sudo apt install --no-install-recommends openbox | ||||
| 	 | ||||
| `sudo apt install xorg` | ||||
| 
 | ||||
| 	sudo nano /etc/lightdm/lightdm.conf | ||||
| `sudo apt install --no-install-recommends lightdm-gtk-greeter lightdm openbox` | ||||
| 
 | ||||
| Then edit	 | ||||
| 
 | ||||
| `sudo nano /etc/lightdm/lightdm.conf` | ||||
| 
 | ||||
| 
 | ||||
| insert: | ||||
| 
 | ||||
| 		[Seat:*] | ||||
| 		autologin-user=ubuntu | ||||
| 		xserver-command = X -nocursor | ||||
| 	[Seat:*] | ||||
| 	autologin-user=ubuntu | ||||
| 	xserver-command = X -nocursor | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ------------------------------------------------------------------------------------------------------------------------------------ | ||||
| *** | ||||
| 
 | ||||
| TODO: | ||||
| At this point, reboot and you will have to login with a keyboard at least once, but after it will auto login the ubuntu user to an openbox session with no cursor | ||||
| 
 | ||||
| 
 | ||||
| ----------------------------------------------------------------------------------------------------------------------------------- | ||||
| *** | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| let's set the desktop wallpaper and write some startup scripts | ||||
| 
 | ||||
| 	 | ||||
| 	sudo apt install libimlib2-dev libx11-dev libxinerama-dev pkg-config make | ||||
| 	git clone https://github.com/himdel/hsetroot.git | ||||
| 	cd hsetroot | ||||
| 	make | ||||
| 	sudo make install | ||||
| `sudo apt install libimlib2-dev libx11-dev libxinerama-dev pkg-config make` | ||||
| 
 | ||||
| `git clone https://github.com/himdel/hsetroot.git` | ||||
| 
 | ||||
| `cd hsetroot` | ||||
| 
 | ||||
| `make` | ||||
| 
 | ||||
| `sudo make install` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  Save your desired background image to /home/ubuntu/desktop.png | ||||
| Save your desired background image to /home/ubuntu/desktop.png | ||||
| 
 | ||||
| 
 | ||||
| a script to set the display resolution to 1280x720 | ||||
| 
 | ||||
| 
 | ||||
| 	sudo nano /home/ubuntu/setdisplay.sh | ||||
| `sudo nano /home/ubuntu/setdisplay.sh` | ||||
| 
 | ||||
| 
 | ||||
|  insert: | ||||
| 
 | ||||
| 	#/bin/bash | ||||
|  	export DISPLAY=:0 | ||||
| 	export DISPLAY=:0 | ||||
| 
 | ||||
|  	if [[ $(xrandr | awk '/HDMI-1/ {print $2}') == "connected" ]]; then | ||||
|         xrandr --output HDMI-1 --mode 1280x720 | ||||
| 	if [[ $(xrandr | awk '/HDMI-1/ {print $2}') == "connected" ]]; then | ||||
|  	xrandr --output HDMI-1 --mode 1280x720 | ||||
| 	fi | ||||
| 	if [[ $(xrandr | awk '/HDMI-2/ {print $2}') == "connected" ]]; then | ||||
|         xrandr --output HDMI-2 --mode 1280x720 | ||||
|  	xrandr --output HDMI-2 --mode 1280x720 | ||||
| 	fi | ||||
|   | ||||
|  	exit 0 | ||||
| 
 | ||||
| 
 | ||||
|  | @ -199,9 +212,13 @@ a script to start/stop the video stream and save DVR to the ~/Videos directory | |||
| 
 | ||||
| note: This script relies on a push button connected between pin 5 and GND. You will have to install one for this to work. | ||||
| 
 | ||||
| Make Videos directory | ||||
| 
 | ||||
| 	sudo nano /home/ubuntu/dvr.sh | ||||
| `sudo mkdir /home/ubuntu/Videos` | ||||
| 
 | ||||
| Make the script | ||||
| 
 | ||||
| `sudo nano /home/ubuntu/dvr.sh` | ||||
| 
 | ||||
|  insert: | ||||
| 
 | ||||
|  | @ -246,10 +263,11 @@ note: This script relies on a push button connected between pin 5 and GND. You w | |||
| 	done | ||||
| 
 | ||||
| 
 | ||||
| Make the scripts executable with chmod +x. | ||||
| 
 | ||||
| Finally: | ||||
| 
 | ||||
| 	sudo nano /etc/xdg/openbox/autostart | ||||
| `sudo nano /etc/xdg/openbox/autostart` | ||||
|   | ||||
| add:	 | ||||
| 
 | ||||
|  | @ -261,47 +279,44 @@ add: | |||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ------------------------------------------------------------------------------------------- | ||||
| *** | ||||
| 
 | ||||
| Pulling the DVR over IP -- a basic media server using nginx | ||||
| 
 | ||||
| 
 | ||||
| 	sudo apt install nginx-light | ||||
| `sudo apt install nginx-light` | ||||
| 
 | ||||
| 
 | ||||
| give permissions up the file tree to our video directory | ||||
| 
 | ||||
| 
 | ||||
| 	sudo chmod o+x /home /home/ubuntu /home/ubuntu/Videos | ||||
| 
 | ||||
| `sudo chmod o+x /home /home/ubuntu /home/ubuntu/Videos` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| backup the default loading page and replace it with our own | ||||
| 
 | ||||
| 	sudo mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.old | ||||
| `sudo mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.old` | ||||
| 
 | ||||
| 	sudo nano /etc/nginx/sites-available/default | ||||
| `sudo nano /etc/nginx/sites-available/default` | ||||
| 
 | ||||
| Add the following, but replace x.x.x.x with your system's network IP address: | ||||
| 	 | ||||
| 
 | ||||
| 
 | ||||
| 	server { | ||||
|     	    listen 8080; | ||||
|     	    listen [::]:8080; | ||||
| 		listen 8080; | ||||
| 		listen [::]:8080; | ||||
| 
 | ||||
|      	   server_name x.x.x.x; | ||||
| 
 | ||||
|      	   root /home/ubuntu/Videos; | ||||
|       	  autoindex on; | ||||
| 		server_name x.x.x.x; | ||||
| 
 | ||||
| 		root /home/ubuntu/Videos; | ||||
|   		autoindex on; | ||||
| 	} | ||||
| 
 | ||||
| 
 | ||||
| restart nginx to initate the changes | ||||
| 
 | ||||
| 	sudo systemctl restart nginx | ||||
| `sudo systemctl restart nginx` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue