Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/01/2015, à 01:29

jajaX

[résolu / trouvé tout seul] FreeMi 2

salut,

je voudrais tester freemi2 (la version "ligne de de commande") mais je trouve pas de doc (rien sur le officiel ni leur forum). l'installation ne devrait pas poser de soucis mais c'est la configuration qui me pose question.

quelqu'un a testé ?

Dernière modification par jajaX (Le 07/01/2015, à 15:53)


@+
jajaX
Asus X93SM-YZ157V / Asus X93SM-YZ065V sous KDE Neon
ASUS K95VB sous Kubuntu 22.04 Jammy Jellyfish (64 bits) / ACER Aspire 5612 WLMI sous Kubuntu 18.04 Bionic Beaver (32 bits)

Hors ligne

#2 Le 07/01/2015, à 15:51

jajaX

Re : [résolu / trouvé tout seul] FreeMi 2

bon, je me réponds à moi même.

donc, comme indiqué, il faut lancer FreeMi avec la commande

mono FreeMi.Console.exe

tout en étant placé dans le dossier où se trouve le logiciel bien évidement.

le fichier de config est créé dans le dossier et se nomme "user.config". après faut tout configurer à la main... comme si on imaginait que tout utilisateur Linux n'a pas droit à l'interface graphique comme avant... et bien sur également, pas trouver de doc (ou j'ai mal chercher) pour le remplir !!

j'ai essayé de reprendre un vieux fichier de config mais ça passe bien évidement.

donc, je vai installer sur un windows qui traîne, copier le fichier de conf et retester.

voilà, si ça peut aider....

edit : l'avantage quand même, et c'est ce que je voudrais faire ensuite, c'est le démarrer en tant que service sans interface graphique !

Dernière modification par jajaX (Le 07/01/2015, à 15:52)


@+
jajaX
Asus X93SM-YZ157V / Asus X93SM-YZ065V sous KDE Neon
ASUS K95VB sous Kubuntu 22.04 Jammy Jellyfish (64 bits) / ACER Aspire 5612 WLMI sous Kubuntu 18.04 Bionic Beaver (32 bits)

Hors ligne

#3 Le 07/01/2015, à 19:03

jajaX

Re : [résolu / trouvé tout seul] FreeMi 2

voici le fichiers de config avec la version Windows =>

<?xml version="1.0" encoding="utf-8"?>
<Settings>
  <MON-PC>
    <WindowHeight>600</WindowHeight>
    <UpdateRequired>False</UpdateRequired>
    <PortNumber>0</PortNumber>
    <V5BufferSize>262144</V5BufferSize>
    <UDN>293a0fef-f5bd-4b2c-a421-dba95f6f14a3</UDN>
    <Entries>
<ArrayOfEntry xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Entry xsi:type="Folder">
    <Id>c129e09b-95c9-409e-9c15-47adc55fdbd2</Id>
    <Label>Musique</Label>
    <Path>C:\Users\jaja\Music</Path>
    <Children />
    <MediaKind>Audio</MediaKind>
  </Entry>
  <Entry xsi:type="Folder">
    <Id>9f2d0817-d9a3-48fc-966d-827d5bf195ff</Id>
    <Label>Images</Label>
    <Path>C:\Users\jaja\Pictures</Path>
    <Children />
    <MediaKind>Image</MediaKind>
  </Entry>
  <Entry xsi:type="Folder">
    <Id>f0bac167-94dc-496f-ba4d-f43b4d3d6f4b</Id>
    <Label>Vidéos</Label>
    <Path>C:\Users\jaja\Videos</Path>
    <Children />
    <MediaKind>Video</MediaKind>
  </Entry>
  <Entry xsi:type="Podcast">
    <Id>1011f042-e187-4b0a-9c2c-76c01b47ee7e</Id>
    <Label>Podcasts</Label>
    <Path>http://freemiupnp.fr/download/podcasts.xml</Path>
  </Entry>
  <Entry xsi:type="FileExplorer">
    <Id>0ea3c821-5660-47b3-bcc1-2ff42b2246db</Id>
    <Label>Explorateur de fichiers</Label>
  </Entry>
</ArrayOfEntry></Entries>
    <V6BufferSize>65536</V6BufferSize>
    <FriendlyName />
    <WindowWidth>800</WindowWidth>
    <CheckNewVersionAvailable>True</CheckNewVersionAvailable>
    <AllowDeletion>False</AllowDeletion>
    <IPv6Enabled>False</IPv6Enabled>
  </MON-PC>
</Settings>

après, ya plus qu'à faire des modifs qui vont bien smile

je vous l'ai mis pour vous en servir aussi wink

j'informerais de mes autres tests.


@+
jajaX
Asus X93SM-YZ157V / Asus X93SM-YZ065V sous KDE Neon
ASUS K95VB sous Kubuntu 22.04 Jammy Jellyfish (64 bits) / ACER Aspire 5612 WLMI sous Kubuntu 18.04 Bionic Beaver (32 bits)

Hors ligne

#4 Le 09/01/2015, à 23:04

jajaX

Re : [résolu / trouvé tout seul] FreeMi 2

ça intéresse du monde que je fasse un tuto ?


@+
jajaX
Asus X93SM-YZ157V / Asus X93SM-YZ065V sous KDE Neon
ASUS K95VB sous Kubuntu 22.04 Jammy Jellyfish (64 bits) / ACER Aspire 5612 WLMI sous Kubuntu 18.04 Bionic Beaver (32 bits)

Hors ligne

#5 Le 18/01/2015, à 21:02

neuroleptix

Re : [résolu / trouvé tout seul] FreeMi 2

salut,
plutôt oui je débute sur xubuntu car j'ai enfin résolu le problème de l'imprimante, mais j'ai absolument besoin de freemi pour lâcher windows.
Je veux bien un coup de main.
J'ai réussi à créer le fichier de config mais après je suis bloqué. Comment on fait pour savoir si freemi fonctionne ? et pour avoir un icone dans le systray si possible
En te remerciant d'avance

Dernière modification par neuroleptix (Le 18/01/2015, à 21:10)

Hors ligne

#6 Le 19/01/2015, à 01:11

jajaX

Re : [résolu / trouvé tout seul] FreeMi 2

salut,

ok je vais voir pour faire un tuto alors...

avec cette version, il n'y a plus d'icône dans le systray. c'est réservé aux windowsiens ça.... pour savoir si ça fonctionne, allume le préiphérique à qui tu destine Freemi wink


@+
jajaX
Asus X93SM-YZ157V / Asus X93SM-YZ065V sous KDE Neon
ASUS K95VB sous Kubuntu 22.04 Jammy Jellyfish (64 bits) / ACER Aspire 5612 WLMI sous Kubuntu 18.04 Bionic Beaver (32 bits)

Hors ligne

#7 Le 19/01/2015, à 21:01

neuroleptix

Re : [résolu / trouvé tout seul] FreeMi 2

Salut,
merci de vouloir me donner un coup de main.
Les problèmes: pas moyen de modifier efficacement le fichier de config - en fait celui ci est créé à chaque lancement du programme en mode console
Comment faire pour le lancer sans avoir une console ouverte ?
Comment le lancer au démarrage ?
J'ai dans l'idée que ça doit ressembler un peu à ça
ajouter-un-programme-au-demarrage-dubuntu-service/
mais comme je suis une quiche en linux, il me manque des bases.
Si quelqu'un avait une solution ?
Merci d'avance.

Dernière modification par neuroleptix (Le 19/01/2015, à 21:14)

Hors ligne

#8 Le 20/01/2015, à 01:14

jajaX

Re : [résolu / trouvé tout seul] FreeMi 2

je ne saurais pas de te le dire sur ubuntu vu que j'utilise Kubuntu. help les autres ?

merci pour lui wink


@+
jajaX
Asus X93SM-YZ157V / Asus X93SM-YZ065V sous KDE Neon
ASUS K95VB sous Kubuntu 22.04 Jammy Jellyfish (64 bits) / ACER Aspire 5612 WLMI sous Kubuntu 18.04 Bionic Beaver (32 bits)

Hors ligne

#9 Le 27/01/2015, à 16:24

the angel

Re : [résolu / trouvé tout seul] FreeMi 2

Bonjour,

Voici la démarche pour mettre en place un daemon pour freemi sous ubuntu 14.10.
Je n'ai pas testé sur d'autres versions mais ça devrais marcher sur toutes les variantes de Ubuntu.

Voici une archive contenant tout ce dont vous aurez besoin, partant du principe que vous êtes actuellement à même de faire fonctionner freemi avec la commande :

mono <chemin_freemi>/FreeMi.Console.exe

Lien de l'archive : http://dl.free.fr/cgqQzUXsK
Vous y trouverez les fichier suivants :

  • freemi-daemon : Le daemon qui servira à lancer freemi automatiquement

  • freemi.tar.bz2 : Une archive contenant une version modifiée de FreeMi (voir ci-dessous)

  • install.sh : un script d'installation qui devrait, normalement, tout vous installer

Tout d'abord, pourquoi cette version modifiée de FreeMi ?
Pour faire simple le programme se comporte normalement comme suit :

FreeMi est lancé
Un message disant d'appuyer sur entrer pour fermer le fermé est affiché
Le logiciel se met en attente d'une saisie clavier
Une fois quelque chose reçu sur l'entrée standard : il se ferme

Le problème c'est le dernier point, lors de mes tests pour faire un daemon avec la version de base je ne suis arrivé à rien.
En fait, le processus semble se fermé automatiquement après avoir été ouvert, je me suis laissé aller à émettre l'hypothèse que d'une manière ou d'une autre le processus recevait quelque chose sur l'entrée standard.
Quelque chose qu'il interprète comme une saisie du clavier et du coup : ferme FreeMi

Pour pallier à ça j'ai modifier le fichier FreeMi.Console.exe pour qu'il ai le comportement suivant :

FreeMi est lancé
Un message avertis l'utilisateur
Le processus attends l'émission d'un signal SIGINT ou SIGTERM
Une fois l'un ou l'autre de ces signaux reçu, il se ferme

Finalement pour fermé freemi il faut maintenant soit appuyer sur CTR+C (SIGINT) dans la fenêtre du processus correspondant (terminal où vous avez lancer la commande mono), soit utiliser la commande kill.

Maintenant que l'on comprends le pourquoi du comment, passons à la phase d'installation.
Je pars de l'hypothèse que vous avez téléchargé l'archive dans votre dossier de téléchargement.
Ouvez un terminal et placez vous dans votre dossier de téléchargement :

cd ~/Downloads
tar -xaf freemi.tar.bz2
cd freemi
sh ./install.sh install

Voici le code du script pour les curieux :

#!/bin/sh

# Install FreeMi UPnP Server and its daemon
# Author : Ely

# Script variables
this_path=`pwd`
script_name=`basename $0`

freemi_basedir=/opt
freemi_path=$freemi_basedir/freemi
freemi_archive=freemi.tar.bz2
freemi_daemon=freemi-daemon

daemon_path=/etc/init.d

user_description="FreeMi UPnP Server"
user_name="freemi"
user_passwd="OBbKAHakXWv5A"
user_home=$freemi_path
user_shell=/usr/sbin/nologin


#
# Function that install FreeMi and its daemon
#
do_install()
{
	# Create a special user for freemi
	sudo useradd --comment "$user_description" --home $user_home -M --shell $user_shell --user-group --system -p $user_passwd $user_name
	[ $? -eq 0 ] && echo "User $user_name created"
	
	# Uncompress the files
	cd $freemi_basedir
	sudo tar xaf $this_path/$freemi_archive
	[ $? -eq 0 ] && echo "FreeMi isntalled in : $freemi_path"

	sudo chown -R $user_name:$user_name $freemi_path
	[ $? -eq 0 ] && echo "Make user ang group freemi owner of $freemi_path"
	cd $this_path
	
	# Install the deamon
	sudo cp $freemi_daemon $daemon_path/
	[ $? -eq 0 ] && echo "$freemi_daemon copied in $daemon_path"

	sudo chmod +x $daemon_path/$freemi_daemon
	[ $? -eq 0 ] && echo "$daemon_path/$freemi_daemon is know executable"
	
	# Add the daemon
	sudo update-rc.d $freemi_daemon defaults 99
	[ $? -eq 0 ] && echo "$freemi_daemon added to rc.d"
}

#
# Function that uninstall FreeMi and its daemon
#
do_uninstall()
{
	# Stop the daemon if it's running
	sudo service $freemi_daemon stop

	# Remove the daemon
	sudo update-rc.d $freemi_daemon remove
	echo "$freemi_daemon removed from rc.d"

	sudo rm -f $daemon_path/$freemi_daemon
	[ $? -eq 0 ] && echo "$daemon_path/$freemi_daemon deleted"

	# Remove FreeMi's files
	sudo rm -fR $freemi_path
	[ $? -eq 0 ] && echo "FreeMi uninstall from $freemi_path"

	# Delete the special user
	sudo userdel -fr $user_name
	[ $? -eq 0 ] && echo "User $user_name deleted"
}

case "$1" in
	install) do_install ;;
	uninstall) do_uninstall ;;
	*) echo "Usage: $script_name {install|uninstall}" ;;
esac

Pour résumer :

  1. Création d'un utilisateur freemi dont le home est /opt/freemi et le mot de passe "freemi"

  2. Décompression du FreeMi modifié à l'emplacement /opt/freemi

  3. Définition de l'utilisateur et du groupe freemi comme propriétaire du répertoire /opt/freemi

  4. Copie du daemon dans le répertoire /etc/init.d

  5. Ce même daemon est rendu exécutable

  6. Ajout du daemon à la liste des services lancés au démarrage

Normalement à ce stade vous devez pouvoir démarrer votre daemon.
Toute fois, il vous faudra supprimer le fichier de configuration qui a été installé.
Effectivement, cette archive est à la base pour me faire gagner du temps lors de réinstallation donc le fichier de configuration corresponds à ma machine.
Je vous renvois vers les messages précédents du topic où il y a un exemple de fichier de configuration complet.
Notez que pour changer le nom de votre serveur UPnP il faut modifier la valeur de la balise <FriendlyName>

Toujours pour les curieux, le code du daemon :

#! /bin/sh
### BEGIN INIT INFO
# Provides:          A FreeMi Daemon
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Launch FreeMi UPnP Server as a deamon
### END INIT INFO

# Author: Ely

# Do NOT "set -e"

# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="FreeMi Daemon"
NAME=freemi-daemon
DAEMON=/usr/bin/mono
DAEMON_ARGS="/opt/freemi/FreeMi.Console.exe"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
DAEMON_USER="freemi"
DAEMON_GROUP=$DAEMON_USER

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
# and status_of_proc is working.
. /lib/lsb/init-functions

# To print log messages
VERBOSE=yes

#
# Function that starts the daemon/service
#
do_start()
{
	# Return
	#   0 if daemon has been started
	#   1 if daemon was already running
	#   2 if daemon could not be started
	start-stop-daemon --start --quiet --background --chuid $DAEMON_USER:$DAEMON_GROUP --make-pidfile --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
		|| return 1
	start-stop-daemon --start --quiet --background --chuid $DAEMON_USER:$DAEMON_GROUP --make-pidfile --pidfile $PIDFILE --exec $DAEMON -- \
		$DAEMON_ARGS \
		|| return 2
	# Add code here, if necessary, that waits for the process to be ready
	# to handle requests from services started subsequently which depend
	# on this one.  As a last resort, sleep for some time.
}

#
# Function that stops the daemon/service
#
do_stop()
{
	# Return
	#   0 if daemon has been stopped
	#   1 if daemon was already stopped
	#   2 if daemon could not be stopped
	#   other if a failure occurred
	start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE
	RETVAL="$?"
	[ "$RETVAL" = 2 ] && return 2
	# Wait for children to finish too if this is a daemon that forks
	# and if the daemon is only ever run from this initscript.
	# If the above conditions are not satisfied then add some other code
	# that waits for the process to drop all resources that could be
	# needed by services started subsequently.  A last resort is to
	# sleep for some time.
	start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --pidfile $PIDFILE
	[ "$?" = 2 ] && return 2
	# Many daemons don't delete their pidfiles when they exit.
	rm -f $PIDFILE
	return "$RETVAL"
}

#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {
	#
	# If the daemon can reload its configuration without
	# restarting (for example, when it is sent a SIGHUP),
	# then implement that here.
	#
	start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE
	return 0
}

case "$1" in
  start)
	[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
	do_start
	case "$?" in
		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
	esac
	;;
  stop)
	[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
	do_stop
	case "$?" in
		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
	esac
	;;
  status)
	status_of_proc -p $PIDFILE "$DAEMON" "$NAME" && exit 0 || exit $?
	;;
  #reload|force-reload)
	#
	# If do_reload() is not implemented then leave this commented out
	# and leave 'force-reload' as an alias for 'restart'.
	#
	#log_daemon_msg "Reloading $DESC" "$NAME"
	#do_reload
	#log_end_msg $?
	#;;
  restart|force-reload)
	#
	# If the "reload" option is implemented then remove the
	# 'force-reload' alias
	#
	log_daemon_msg "Restarting $DESC" "$NAME"
	do_stop
	case "$?" in
	  0|1)
		do_start
		case "$?" in
			0) log_end_msg 0 ;;
			1) log_end_msg 1 ;; # Old process is still running
			*) log_end_msg 1 ;; # Failed to start
		esac
		;;
	  *)
		# Failed to stop
		log_end_msg 1
		;;
	esac
	;;
  *)
	#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
	echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
	exit 3
	;;
esac

:

Il est basé sur le fichier /etc/init.d/skeleton, peut de modification :
Ajout d'options de lancement, tâche de fond, gère la création du pidfile et lancement en tant que freemi:freemi
Ajout du paramètre -p $PIDFILE pour connaître le statut.

La doc est très bien faite donc ne vous privez pas :

man start-stop-daemon

En espérant que ce sera profitable au plus grand nombre.

[EDIT] J'ai oublié de préciser, il faut redémarrer pour que FreeMi se lance automatiquement.
Pour le contrôle manuel :

sudo service freemi-daemon start # Lance FreeMi
sudo service freemi-daemon restart # Redémarre FreeMi
sudo service freemi-daemon stop # Arrête le FreeMi
sudo service freemi-daemon status # Affiche le status du daemon

Dernière modification par the angel (Le 27/01/2015, à 16:36)

Hors ligne

#10 Le 28/01/2015, à 00:25

jajaX

Re : [résolu / trouvé tout seul] FreeMi 2

salut,

vache the angel, joli tout ça !! vraiment chapeau bas wink

mais je t'en prie, vas plutôt poster ça dans la rubrique "tuto" que dans mon sujet tout pourri !!

sinon, je n'avais pas de soucis de fermeture en lançant FreeMi via "rc.local" (de mémoire)


@+
jajaX
Asus X93SM-YZ157V / Asus X93SM-YZ065V sous KDE Neon
ASUS K95VB sous Kubuntu 22.04 Jammy Jellyfish (64 bits) / ACER Aspire 5612 WLMI sous Kubuntu 18.04 Bionic Beaver (32 bits)

Hors ligne

#11 Le 06/02/2015, à 00:17

neuroleptix

Re : [résolu / trouvé tout seul] FreeMi 2

salut
désolé j'avais pas vu la réponse
Ouah je vais tester ça, mais ça pas l'air simple.
Impressionnant, MERCI.  smile

Hors ligne