From bdc49b5b4c7f40819fdea920cd22407d31de00ab Mon Sep 17 00:00:00 2001 From: Avinash Pandey Date: Thu, 21 Sep 2023 21:51:31 +0530 Subject: [PATCH 1/9] added installation script; modified service files --- install.sh | 25 +++++++++++++++++++++++++ res/.miraclecast | 17 +++++++++++++++++ res/run-vlc.sh | 2 ++ systemd/system/miracle-sink.service | 4 ++-- systemd/system/miracle-wifid.service | 6 +++++- 5 files changed, 51 insertions(+), 3 deletions(-) create mode 100755 install.sh create mode 100644 res/.miraclecast diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..26881e6 --- /dev/null +++ b/install.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +apt install cmake libglib2.0-dev libudev-dev libsystemd-dev libreadline-dev check libtool -y + +apt install gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-tools -y + +mkdir build +cd build +cmake -DCMAKE_INSTALL_PREFIX=/usr .. +make +make install + +cd .. + +echo "-- Installing: /root/.miraclecast" +cp res/.miraclecast /root/ + +echo "-- Installing: /usr/bin/run-vlc.sh" +cp res/run-vlc.sh /usr/bin/ + +echo "-- Installing: /etc/systemd/system/miracle-wifid.service" +cp systemd/system/miracle-wifid.service /etc/systemd/system/ + +echo "-- Installing: /etc/systemd/system/miracle-sink.service" +cp systemd/system/miracle-sink.service /etc/systemd/system/ \ No newline at end of file diff --git a/res/.miraclecast b/res/.miraclecast new file mode 100644 index 0000000..3931d25 --- /dev/null +++ b/res/.miraclecast @@ -0,0 +1,17 @@ +[sinkctl] +external-player=1 +#extends.wfd_video_formats=40 00 01 10 0001bdeb 051557ff 00000fff 10 0000 001f 11 0780 0438, 02 10 0001bdeb 155557ff 00000fff 10 0000 001f 11 0780 0438 +extends.wfd_audio_codecs=AAC 0000000f 00, AC3 00000007 00 +#extends.wfd_display_edid=0001 00ffffffffffff0051f38f50010000000e100104a51d10ff2f0000a057499b2610484f000000010101010101010101010101010101011a36809c70381f403020350025a510000018000000fc00496e7465726e616c204c43440a000000fd003c3c9a9a0e00000000000000000000000000000000000000000000000000000030 +extends.wfd_connector_type=05 +extends.microsoft_cursor=none +extends.microsoft_rtcp_capability=none +extends.wfd_idr_request_capability=1 +extends.microsoft_latency_management_capability=none +extends.microsoft_format_change_capability=none +extends.microsoft_diagnostics_capability=none +extends.intel_friendly_name=miraclecast +extends.intel_sink_manufacturer_name=GNU Linux +extends.intel_sink_model_name=Arch linux +extends.intel_sink_device_URL=http://github.com/albfan/miraclecast +extends.wfd_uibc_capability=none \ No newline at end of file diff --git a/res/run-vlc.sh b/res/run-vlc.sh index b43ed46..19735ad 100755 --- a/res/run-vlc.sh +++ b/res/run-vlc.sh @@ -1,2 +1,4 @@ +#!/bin/bash + export DISPLAY=:0 && su -c "cvlc --no-osd --no-video-title-show --network-caching=200 rtp://@:7236" letsving #export DISPLAY=:0 && su -c "cvlc --no-osd --no-video-title-show --network-caching=200 --no-ts-trust-pcr --h264-fps=23 rtp://@:7236" letsving diff --git a/systemd/system/miracle-sink.service b/systemd/system/miracle-sink.service index 5075600..ffc6d2a 100644 --- a/systemd/system/miracle-sink.service +++ b/systemd/system/miracle-sink.service @@ -1,11 +1,11 @@ [Unit] Description=Miraclecast sink on default link Before=network.target -After=miracle-wifid.service +Requires=miracle-wifid.service [Service] Type=simple -ExecStart=/usr/bin/miracle-sinkctl +ExecStart=/usr/bin/miracle-sinkctl -- set-friendly-name VingMiracle Restart=always User=root diff --git a/systemd/system/miracle-wifid.service b/systemd/system/miracle-wifid.service index f47819d..455c830 100644 --- a/systemd/system/miracle-wifid.service +++ b/systemd/system/miracle-wifid.service @@ -1,11 +1,15 @@ [Unit] Description=wpa_supplicant with Miracast support Before=network.target -After=dbus.service +After=dbus.socket [Service] Type=simple +ExecStartPre=/usr/bin/systemctl stop ap.service +ExecStartPre=/usr/bin/systemctl stop NetworkManager.service ExecStart=/usr/bin/miracle-wifid +ExecStopPost=/usr/bin/systemctl start NetworkManager.service +ExecStopPost=/usr/bin/systemctl start ap.service Restart=always User=root From e400b58da6cfaf8b1e025a806454adab7dc4f6d1 Mon Sep 17 00:00:00 2001 From: Avinash Pandey Date: Fri, 22 Sep 2023 02:34:36 +0530 Subject: [PATCH 2/9] added Pre and Post scripts in service files --- systemd/system/miracle-sink.service | 1 + systemd/system/miracle-wifid.service | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/systemd/system/miracle-sink.service b/systemd/system/miracle-sink.service index ffc6d2a..dabb122 100644 --- a/systemd/system/miracle-sink.service +++ b/systemd/system/miracle-sink.service @@ -6,6 +6,7 @@ Requires=miracle-wifid.service [Service] Type=simple ExecStart=/usr/bin/miracle-sinkctl -- set-friendly-name VingMiracle +ExecStopPost=-/usr/bin/systemctl stop miracle-wifid.service Restart=always User=root diff --git a/systemd/system/miracle-wifid.service b/systemd/system/miracle-wifid.service index 455c830..13d75eb 100644 --- a/systemd/system/miracle-wifid.service +++ b/systemd/system/miracle-wifid.service @@ -5,11 +5,11 @@ After=dbus.socket [Service] Type=simple -ExecStartPre=/usr/bin/systemctl stop ap.service -ExecStartPre=/usr/bin/systemctl stop NetworkManager.service +ExecStartPre=-/usr/bin/systemctl stop ap.service +ExecStartPre=-/usr/bin/systemctl stop NetworkManager.service ExecStart=/usr/bin/miracle-wifid -ExecStopPost=/usr/bin/systemctl start NetworkManager.service -ExecStopPost=/usr/bin/systemctl start ap.service +ExecStopPost=-/usr/bin/systemctl start NetworkManager.service +ExecStopPost=-/usr/bin/systemctl start ap.service Restart=always User=root From a3f3cb626076632ba0e7a96bb88de2c920c75075 Mon Sep 17 00:00:00 2001 From: Avinash Pandey Date: Fri, 22 Sep 2023 10:35:08 +0530 Subject: [PATCH 3/9] modified .miraclecast and run-vlc --- res/.miraclecast | 2 +- res/miraclecast.sh | 13 +++++++++++++ res/run-vlc.sh | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 res/miraclecast.sh diff --git a/res/.miraclecast b/res/.miraclecast index 3931d25..1469c1e 100644 --- a/res/.miraclecast +++ b/res/.miraclecast @@ -6,7 +6,7 @@ extends.wfd_audio_codecs=AAC 0000000f 00, AC3 00000007 00 extends.wfd_connector_type=05 extends.microsoft_cursor=none extends.microsoft_rtcp_capability=none -extends.wfd_idr_request_capability=1 +extends.wfd_idr_request_capability=0 extends.microsoft_latency_management_capability=none extends.microsoft_format_change_capability=none extends.microsoft_diagnostics_capability=none diff --git a/res/miraclecast.sh b/res/miraclecast.sh new file mode 100644 index 0000000..5d61b10 --- /dev/null +++ b/res/miraclecast.sh @@ -0,0 +1,13 @@ +#!/bin/bash +# +# Run Miraclecast +# + +# 1. capture argument +# 2. Abort if error on wifid +# 3. Runk sink with arg + + +miracle-wifid --log-level debug --log-date-time + +miracle-sinkctl --log-level trace --log-date-time \ No newline at end of file diff --git a/res/run-vlc.sh b/res/run-vlc.sh index 19735ad..c762b54 100755 --- a/res/run-vlc.sh +++ b/res/run-vlc.sh @@ -1,4 +1,4 @@ #!/bin/bash -export DISPLAY=:0 && su -c "cvlc --no-osd --no-video-title-show --network-caching=200 rtp://@:7236" letsving +export DISPLAY=:0 && su -c "cvlc --no-osd --no-video-title-show --network-caching=300 rtp://@:7236" letsving #export DISPLAY=:0 && su -c "cvlc --no-osd --no-video-title-show --network-caching=200 --no-ts-trust-pcr --h264-fps=23 rtp://@:7236" letsving From 4affeb24cb7b530798f6c831535b606f9814af00 Mon Sep 17 00:00:00 2001 From: Avinash Pandey Date: Fri, 22 Sep 2023 10:37:40 +0530 Subject: [PATCH 4/9] remved StartPre and StopPost from systemd service files --- systemd/system/miracle-wifid.service | 4 ---- 1 file changed, 4 deletions(-) diff --git a/systemd/system/miracle-wifid.service b/systemd/system/miracle-wifid.service index 13d75eb..08e561d 100644 --- a/systemd/system/miracle-wifid.service +++ b/systemd/system/miracle-wifid.service @@ -5,11 +5,7 @@ After=dbus.socket [Service] Type=simple -ExecStartPre=-/usr/bin/systemctl stop ap.service -ExecStartPre=-/usr/bin/systemctl stop NetworkManager.service ExecStart=/usr/bin/miracle-wifid -ExecStopPost=-/usr/bin/systemctl start NetworkManager.service -ExecStopPost=-/usr/bin/systemctl start ap.service Restart=always User=root From d86d51b2f7fb944510d8c599afeca1f29c5ba996 Mon Sep 17 00:00:00 2001 From: Avinash Pandey Date: Fri, 22 Sep 2023 11:07:56 +0530 Subject: [PATCH 5/9] modified service files --- systemd/system/miracle-sink.service | 2 +- systemd/system/miracle-wifid.service | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/systemd/system/miracle-sink.service b/systemd/system/miracle-sink.service index dabb122..080aedc 100644 --- a/systemd/system/miracle-sink.service +++ b/systemd/system/miracle-sink.service @@ -5,7 +5,7 @@ Requires=miracle-wifid.service [Service] Type=simple -ExecStart=/usr/bin/miracle-sinkctl -- set-friendly-name VingMiracle +ExecStart=/usr/bin/miracle-sinkctl --log-level debug --log-journal-level debug -- set-friendly-name VingMiracle ExecStopPost=-/usr/bin/systemctl stop miracle-wifid.service Restart=always User=root diff --git a/systemd/system/miracle-wifid.service b/systemd/system/miracle-wifid.service index 08e561d..cf3345f 100644 --- a/systemd/system/miracle-wifid.service +++ b/systemd/system/miracle-wifid.service @@ -5,7 +5,11 @@ After=dbus.socket [Service] Type=simple -ExecStart=/usr/bin/miracle-wifid +ExecStartPre=-/usr/bin/systemctl stop ap.service +ExecStartPre=-/usr/bin/systemctl stop NetworkManager.service +ExecStart=/usr/bin/miracle-wifid --log-level debug +ExecStopPost=-/usr/bin/systemctl start NetworkManager.service +ExecStopPost=-/usr/bin/systemctl start ap.service Restart=always User=root From 6b22067cc43132f8f7781ef289caac00d371e281 Mon Sep 17 00:00:00 2001 From: Avinash Pandey Date: Fri, 22 Sep 2023 12:05:02 +0530 Subject: [PATCH 6/9] removed restart from systemd services --- systemd/system/miracle-sink.service | 1 - systemd/system/miracle-wifid.service | 1 - 2 files changed, 2 deletions(-) diff --git a/systemd/system/miracle-sink.service b/systemd/system/miracle-sink.service index 080aedc..691323c 100644 --- a/systemd/system/miracle-sink.service +++ b/systemd/system/miracle-sink.service @@ -7,7 +7,6 @@ Requires=miracle-wifid.service Type=simple ExecStart=/usr/bin/miracle-sinkctl --log-level debug --log-journal-level debug -- set-friendly-name VingMiracle ExecStopPost=-/usr/bin/systemctl stop miracle-wifid.service -Restart=always User=root [Install] diff --git a/systemd/system/miracle-wifid.service b/systemd/system/miracle-wifid.service index cf3345f..2c550fd 100644 --- a/systemd/system/miracle-wifid.service +++ b/systemd/system/miracle-wifid.service @@ -10,7 +10,6 @@ ExecStartPre=-/usr/bin/systemctl stop NetworkManager.service ExecStart=/usr/bin/miracle-wifid --log-level debug ExecStopPost=-/usr/bin/systemctl start NetworkManager.service ExecStopPost=-/usr/bin/systemctl start ap.service -Restart=always User=root [Install] From 8b2b645d0c78702943fa776f67a702e7dbfc4a04 Mon Sep 17 00:00:00 2001 From: Avinash Pandey Date: Fri, 22 Sep 2023 12:29:14 +0530 Subject: [PATCH 7/9] systemd service: stop/start wpa_supplicant before/after running wifid --- systemd/system/miracle-wifid.service | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/systemd/system/miracle-wifid.service b/systemd/system/miracle-wifid.service index 2c550fd..93d9de3 100644 --- a/systemd/system/miracle-wifid.service +++ b/systemd/system/miracle-wifid.service @@ -5,11 +5,17 @@ After=dbus.socket [Service] Type=simple + ExecStartPre=-/usr/bin/systemctl stop ap.service ExecStartPre=-/usr/bin/systemctl stop NetworkManager.service +ExecStartPre=-/usr/bin/systemctl stop wpa_supplicant.service + ExecStart=/usr/bin/miracle-wifid --log-level debug + +ExecStopPost=-/usr/bin/systemctl start wpa_supplicant.service ExecStopPost=-/usr/bin/systemctl start NetworkManager.service ExecStopPost=-/usr/bin/systemctl start ap.service + User=root [Install] From 2bdd5b487d4ca2ed543070c78f155fc1b0f2f411 Mon Sep 17 00:00:00 2001 From: Avinash Pandey Date: Fri, 22 Sep 2023 12:54:10 +0530 Subject: [PATCH 8/9] removed miraclecast shell script --- res/miraclecast.sh | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 res/miraclecast.sh diff --git a/res/miraclecast.sh b/res/miraclecast.sh deleted file mode 100644 index 5d61b10..0000000 --- a/res/miraclecast.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -# -# Run Miraclecast -# - -# 1. capture argument -# 2. Abort if error on wifid -# 3. Runk sink with arg - - -miracle-wifid --log-level debug --log-date-time - -miracle-sinkctl --log-level trace --log-date-time \ No newline at end of file From cac794c6f6f9e31353470fc33658dfdbec2628bd Mon Sep 17 00:00:00 2001 From: Avinash Pandey Date: Fri, 22 Sep 2023 13:11:30 +0530 Subject: [PATCH 9/9] updated readme --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index b100f41..64e3624 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,16 @@ The Display-Source side allows you to connect external displays to your system a On the other hand, the Display-Sink side allows you to create wifi-capable external displays yourself. You can use it on your embedded devices or even on full desktops to allow other systems to use your device as external display. +## Steps to Setup MiracleCast on Ving NUC + +In the root of the project directory, run `sudo ./install.sh` + +Steps to run: +1. Run `sudo miracle-wifid --log-level trace --log-date-time` in a terminal. +2. Run `sudo miracle-sinkctl -e run-vlc.sh --log-level trace --log-journal-level trace --log-date-time -- set-friendly-name VingMiracle` in a separate terminal. + +Now you should be able to cast your Windows 10/11 devices on Ving NUC. + ## Requirements The MiracleCast projects requires the following software to be installed: