[systemd-devel] Mediacast to TV - MiracleCast - Open-Source Miracast - Wifi-Display on linux

poma pomidorabelisima at gmail.com
Sun Feb 1 01:50:58 PST 2015


On 01.02.2015 10:18, poma wrote:
> On 01.02.2015 05:38, poma wrote:
>> On 31.01.2015 17:28, Patrick O'Callaghan wrote:
>>> I have a smart TV (Sony Bravia) and can use Android Cast Screen from my
>>> phone or tablet to see content. Apparently it also works with the Apple
>>> equivalent. Is there a way to do this from my F21 desktop?
>>>
>>> poc
>>>
> ...
>>
>> Ref.
>> On Wifi-Display, Democratic Republics and Miracles
>>   https://dvdhrm.wordpress.com/2014/02/17/on-wifi-democratic-republics-and-miracles/
>> MiracleCast - Wifi-Display/Miracast Implementation
>>   http://cgit.freedesktop.org/~dvdhrm/miracle/
>>
>> Review Request: libwfd - A stand-alone implementation of the Wifi-Display protocol
>>   https://bugzilla.redhat.com/show_bug.cgi?id=1066707
>>
>> MiracleCast - libwfd
>>   http://www.freedesktop.org/wiki/Software/miracle/libwfd/
>> build: remove libwfd dependency
>>   http://cgit.freedesktop.org/~dvdhrm/miracle/commit/?id=7a73bee
>>
> 
> systemd.spec-enable-kdbus.patch:
> 
> Without
> --enable-kdbus
> in
> systemd.spec
> 
> src/wifi/wifid.c:30:28: fatal error: systemd/sd-bus.h: No such file or directory
> src/shared/rtsp.c:31:30: fatal error: systemd/sd-event.h: No such file or directory
> src/shared/wpas.c:31:30: fatal error: systemd/sd-event.h: No such file or directory
> 
> ---
>  systemd.spec | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/systemd.spec b/systemd.spec
> index d3c7012..55265bb 100644
> --- a/systemd.spec
> +++ b/systemd.spec
> @@ -502,7 +502,7 @@ CONFIGURE_OPTS=(
>          --with-sysvinit-path=/etc/rc.d/init.d
>          --with-rc-local-script-path-start=/etc/rc.d/rc.local
>          --with-ntp-servers='0.%{ntpvendor}.pool.ntp.org 1.%{ntpvendor}.pool.ntp.org 2.%{ntpvendor}.pool.ntp.org 3.%{ntpvendor}.pool.ntp.org'
> -        --disable-kdbus
> +        --enable-kdbus
>          --disable-terminal
>  )
>  
> @@ -988,6 +988,14 @@ getent passwd systemd-journal-upload >/dev/null 2>&1 || useradd -r -l -g systemd
>  %{_includedir}/systemd/sd-id128.h
>  %{_includedir}/systemd/sd-messages.h
>  %{_includedir}/systemd/_sd-common.h
> +%{_includedir}/systemd/sd-bus-protocol.h
> +%{_includedir}/systemd/sd-bus-vtable.h
> +%{_includedir}/systemd/sd-bus.h
> +%{_includedir}/systemd/sd-event.h
> +%{_includedir}/systemd/sd-path.h
> +%{_includedir}/systemd/sd-resolve.h
> +%{_includedir}/systemd/sd-rtnl.h
> +%{_includedir}/systemd/sd-utf8.h
>  %{_includedir}/libudev.h
>  %{_libdir}/pkgconfig/libudev.pc
>  %{_libdir}/pkgconfig/libsystemd.pc
> 
> ~~~~~~~~~~
> ~~~~~~~~~~
> 
> miracle-include-stdio.h.patch:
> 
> Without
> #include <stdio.h>
> in
> src/wifi/wifid.h
> src/wifi/wifid-supplicant.c:2447:2: error: unknown type name ‘FILE’
> &
> src/ctl/ctl.h
> /usr/include/readline/rltypedefs.h:71:28: error: unknown type name ‘FILE’
> /usr/include/readline/readline.h:423:20: error: unknown type name ‘FILE’
> /usr/include/readline/readline.h:550:8: error: unknown type name ‘FILE’
> /usr/include/readline/readline.h:551:8: error: unknown type name ‘FILE’
> /usr/include/readline/readline.h:580:8: error: unknown type name ‘rl_getc_func_t’
> /usr/include/readline/readline.h:899:3: error: unknown type name ‘FILE’
> /usr/include/readline/readline.h:900:3: error: unknown type name ‘FILE’
> src/ctl/ctl-cli.c:326:15: error: ‘stdin’ undeclared (first use in this function)
> 
> ---
>  src/ctl/ctl.h    | 1 +
>  src/wifi/wifid.h | 1 +
>  2 files changed, 2 insertions(+)
> 
> diff --git a/src/ctl/ctl.h b/src/ctl/ctl.h
> index 47c37ae..19ad34d 100644
> --- a/src/ctl/ctl.h
> +++ b/src/ctl/ctl.h
> @@ -20,6 +20,7 @@
>  #include <errno.h>
>  #include <stdarg.h>
>  #include <stdbool.h>
> +#include <stdio.h>
>  #include <stdlib.h>
>  #include <string.h>
>  #include <sys/socket.h>
> diff --git a/src/wifi/wifid.h b/src/wifi/wifid.h
> index 62d5346..728136e 100644
> --- a/src/wifi/wifid.h
> +++ b/src/wifi/wifid.h
> @@ -20,6 +20,7 @@
>  #include <errno.h>
>  #include <libudev.h>
>  #include <stdbool.h>
> +#include <stdio.h>
>  #include <stdlib.h>
>  #include <systemd/sd-bus.h>
>  #include <systemd/sd-event.h>
> 
> ~~~~~~~~~~
> ~~~~~~~~~~
> 
> $ git clone git://people.freedesktop.org/~dvdhrm/miracle
> $ cd miracle/
> $ patch -p1 < ../miracle-include-stdio.h.patch
> $ test -f ./configure || NOCONFIGURE=1 ./autogen.sh
> $ ./configure --disable-static
> $ make
> $ su
> # make install
> 
> $ ls -1 /usr/local/bin/miracle*
> /usr/local/bin/miracled
> /usr/local/bin/miracle-dhcp
> /usr/local/bin/miracle-gst.sh
> /usr/local/bin/miracle-sinkctl
> /usr/local/bin/miracle-wifictl
> /usr/local/bin/miracle-wifid
> 
> 
> MiracleCast - Howto
>   http://web.archive.org/web/20140807221926/http://www.freedesktop.org/wiki/Software/miracle/howto
> 
> FOSDEM 2014
> Open-Source Miracast
> Wifi-Display on linux
>   https://archive.fosdem.org/2014/schedule/event/miracast/
> 


MiracleCast - Howto
"Current State"
...
    We require direct access to the wpa_supplicant interface. No network-manager (including ConnMan, NetworkManager, wicd) provides a Wifi-P2P API so we implemented it ourselves. We really want to drop this once network-managers start exposing such APIs.
    We use our own miracle-dhcp binary as DHCP client and server implementation. It's copied from ConnMan as no existing DHCP server provides ad-hoc capabilities. Once sd-dns gains DHCP-server support, we will immediately switch to it (which should happen during 2014) and drop our helper-binary.


Can folks from the NetworkManager team & systemd-networkd team answer regarding the current status in this matter?




More information about the systemd-devel mailing list