viernes, 23 de noviembre de 2012

... torrents ... ¡¡¡SOLUCIONADO!!!

porque el kernel es tu amigo

Muy buenos días, hoy por fin puedo anunciar que el Super Poder de Cliente Torrent esta 100% operativo. Como seguro que ya sabíais, las primeras versiones de los sistemas operativos que sacaban para RaspberryPi, petaban cuando ponías en marcha algunos clientes torrent. Yo por mi parte probé casi todo lo que estaba disponible para el RaspberryPi, compilé versiones beta de clientes, tuneé configuraciones ... para nada.
El otro día, volví con el tema de los torrents y entre los parámetros del kernel, me topé con uno que me dio un escalofrío en la artería geek. Busqué información y ... llevo 4 días descargando torrents al 100% del ancho de banda de mi ADSL. Así que lo comparto con vosotros.


En el archivo /boot/cmdline.conf y el parámetro a cambiar/añadir es:
smsc95xx.turbo_mode=N
lo ponemos al principio de la única línea que tiene que tener el archivo, la mía queda así:
smsc95xx.turbo_mode=N dwc_otg.lpm_enable=0 console=ttyAMA0,9600 kgdboc=ttyAMA0,9600 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

Hacemos un reboot y ya podemos tener nuestro transmission-daemon en marcha sin preocuparnos :)

ACTUALIZACIÓN:
en el archivo setings.json:
    "script-torrent-done-enabled": true,
    "script-torrent-done-filename": "/usr/local/bin/aviso_torrent.sh",
y el script en cuestión:
#!/bin/bash
# programado por Juanmol para http://rsppi.blogspot.com
/bin/bash /usr/local/bin/encola_whatsapp.sh 666777888 "$TR_TORRENT_NAME bajado"


45 comentarios:

  1. Si esa configuración hace la diferencia, antes de usarla tenia algunos cuelgues con transmission.

    Usando Respbian y siguiendo los pasos al final de esta guía:
    http://www.megaleecher.net/Transmission_Torrent_Client_On_Raspberry_Pi

    En mi caso lo que hice fue:

    sudo nano /boot/cmdline.txt
    al final agregar:
    smsc95xx.turbo_mode=N


    sudo nano /etc/sysctl.conf
    modificar, dejando asi:
    vm.min_free_kbytes =16384

    Espero te sirva

    Salu2

    Jerome

    ResponderEliminar
  2. Funciona pero con límites.

    Al superar los 11Mg de descarga el Transmission se bloquea y se cierra.

    Sigue siendo muy buena velocidad pero no puedo aprovechar la totalidad del ancho de banda.

    ResponderEliminar
  3. pues yo no tengo problemas y no he cambiado nada de esto, uso en concreto transmission-daemon sobre una partición con ext4

    ResponderEliminar
    Respuestas
    1. ¿Qué velocidad tienes en tu Adsl?

      Eliminar
    2. puede que sea también porque tenga otra versión de algún componente del RaspberryPi, el mio es de los primeros.

      Eliminar
  4. Una pregunta compañeros, ¿a que dispositivo de almacenamiento descargáis? Por que yo estoy intentándolo con un USB 2,% autoalimentado y no hay forma.

    ResponderEliminar
    Respuestas
    1. yo lo hago a un NAS por red y protocolo SMB.

      Eliminar
    2. Aunque parezca obvio... Me seria muy util saber como has configurado para montar el NAS por red y el protocolo SMB

      Eliminar
    3. Ok ya me auto-respondo. Se que era abvio pero no lo sabia:

      mount -t cifs -o username=,password='' //IP_EQUIPO/tmptorrents /mnt/tmptorrents (Por ejemplo)

      Eliminar
    4. Pues sigo teniendo problemas.

      Tengo /mnt/tmptorrents con permisos chmod 777.
      //IP_EQUIPO/tmptorrents tambien tiene permisos 777.

      De hecho en ambos, si hago un ls -l obtengo lo siguiente:
      drwxrwxrwx 2 root root 4096 ene 3 00:49 tmptorrents

      PERO AL MONTARSE POR CIFS cambia los permisos!!
      drwxr-xr-x 1 root root 0 ene 3 00:49 tmptorrents

      Esto hace que me cancele las descargas por no tener permisos al iniciar la descarga:
      Error: Permission denied (/mnt/tmptorrents/The_Avengers_720p.mkv)

      ¿¿Que puede ser?? Si pongo este disco Iomega ScreenPlay Director por USB no hay problema, pero no quiero tener 2 equipos junto al televisor. De hecho me gustaria tener a mi Raspi cerca del Router escondidita.

      Si va mejor por USB lo hare sin mas remedio, pero he leido que JuanMol lo tienes asi por red y estoy intrigado...

      Eliminar
    5. Igual es un poco tarde pero yo probaria a añadir en las opciones:
      -o username=tuusuario,password=tupassword,file_mode=0777,dir_mode=0777

      las dos ultimas opciones me salvaron la vida personalmente...

      1 saludo.

      Eliminar
    6. Hola Miguel;
      ¿Donde pones esas opciones
      ?

      Eliminar
  5. El Raspi no tiene energía suficiente para alimentar un disco de 2.5" externo.

    Necesitarás un Hub autoalimentado o similar.

    ResponderEliminar
  6. Creo que deberías añadir un enlace a esta entrada al final del tutorial del torrent, para los que sigan el tutorial no se queden con el fallo sin solucionar =(

    ResponderEliminar
  7. Muchas gracias, me sirvió de mucho este post. De momento lleva descargando todo el día y sin quedarse pillao. Solo hacer un apunte, y es que en tu post pones que se debe editar el fichero /boot/cmdline.conf , y este fichero no existe, el que hay que editar es el /boot/cmdline.txt , tal y como pone en el comentario del Anónimo anterior.

    El problema que tengo es que demasiado a menudo(casi siempre) se me quedan los torrent a un 99.8% de descarga, y siempre con el mismo problema: Please verify local Data! Piece #n is corrupt
    Como almacenamiento uso un usb autoalimentado (pero no conectado directamente al Pi, si no a través de un hub con alimentación), formateado en ntfs y con el driver ntfs-3g. Al final creo que probaré rtorrent a ver que resultados me da y si no me vuelve a salir este error.

    ResponderEliminar
  8. En el almacenamiento quería decir un disco duro usb autoalimentado, creo que se entiende, pero por si acaso.

    ResponderEliminar
  9. /bin/bash /usr/local/bin/encola_whatsapp.sh 666777888 "$TR_TORRENT_NAME bajado"

    porq en esta linea se vuelve a usar ??? /bin/bash al principio no esta arriba????

    ResponderEliminar
    Respuestas
    1. Armageddon2.0, vistes la respuesta que te hice sobre mi script del Whatsapp? Te funciona?
      Aqui esta el comentario que te puse:
      http://rsppi.blogspot.com.es/2012/12/asegura-tu-raspberrypi-del-ataque-de.html?showComment=1356736010186#c5631489181234059286

      Eliminar
    2. no lo avia visto lo voy a provar gracias :)

      Eliminar
  10. Rumoku, sobre tu comentario de montar una carpeta remota en mnt, me estuve peleando con esto hace unos días, soy novato en Raspberry y Linux, pero un colega me supo dar la clave. Los permisos se mantienen si añades el "gid" y "uid" del usuario que quieras. Si no lo pones, es cierto que al montar la unidad, los permisos cambian.

    mount -t cifs -o username=xxxx,password='',uid=xxxx,gid=xxxx //IP_EQUIPO/tmptorrents /mnt/tmptorrents

    haz un "id (usuario)" para averiguarlo.

    ResponderEliminar
    Respuestas
    1. Hombre!! Gracias Fernando... Eso lo vi, pero no se como encontrar el uid y el gid, por eso lo omitia. Sabes como hacerlo? Con eso tendria resuelto el tema. Por cierto, también vi como montar el disco en /etc/fstab. Me va mejor asi.

      Saque la información de aqui:
      http://www.guia-ubuntu.com/index.php?title=Montar_comparticiones_remotas_usando_smbfs_y_cifs

      Eliminar
  11. Si claro, te lo puse. En consola escribe "id (usuario)", donde obviamente, (usuario) corresponde al que estás usando. Generalmente los valores gid y uid serán 1000, pero mejor asegurarse. También puedes abrir el archivo /etc/passwd y verlo ahí directamente.

    ResponderEliminar
    Respuestas
    1. Mil gracias! Esta tarde/noche lo pruebo... Que buena es esta comunidad.

      Eliminar
    2. Lo logré! al final monté las unidades para el usuario debian-transmission y ya va de lujo!

      Puse id debian-transmission me devolvio uid=108 gid=111 Y con esto y un bizcocho tengo permisos de escritura del transmission. No tengo permisos 777 como quería inicialmente, pero ahora tampoco los necesito ;)

      GRACIAS FERNANDO!

      Eliminar
  12. juanmol como modifico el script que has hecho para que en vez de mandar un whatsapp me mande un mail.

    Se que desde la linea de comando es asi:
    echo "texto a teclear" | mail -s "Asunto" usuraio@gmail.com

    pero no se como meterlo en el script

    ResponderEliminar
    Respuestas
    1. el comando lo puedes completar un poco mas:
      echo "se ha descargado $TR_TORRENT_NAME" | mail -s "torrent descargado" usuario@gmail.com
      solo tienes que sustituir la linea del whatsapp por esa, básicamente el script se limita esa línea.
      ¡¡OJO!! tu Raspberry tiene que ser capaz de enviar emails, en breve pondré un post sobre esto.

      Eliminar
    2. La tengo cnofigurada con ssmtp y mailutil

      Eliminar
    3. He hecho esto en el script pero no me manda nada y en el terminal si van los mails:

      #!/bin/bash
      echo "se ha descargado el torrent" | mail -s "$TR_TORRENT_NAME descargado" usuario@gmail.com

      Eliminar
    4. en la configuracion del transmission:
      "script-torrent-done-filename": "/usr/local/bin/aviso_torrent.sh",

      ahí estas poniendo bien la ruta verdad?

      Eliminar
    5. si lo tengo bien. Pero intento ejecutar el script solo desde el terminal y me dice permiso denegado. Le di permisos de ejecucion. No se

      Ha y me crea un archivo igual .save

      Eliminar
    6. o_O .save ?? ni idea. A ver si me pongo con este tema y completo el post.

      Eliminar
    7. aviso_torrent.sh.save me crea en la misma ubicacion

      Eliminar
    8. Yo estoy en las mismas con lo del email de notificación. Me crea el .save y no me lo envía desde el transmission, pero si lo lanzo directamente funciona perfectamente

      Eliminar
    9. A mi me pasaba lo mismo... el problema era que cuando lo lanzaba directamente (el script) lo hacia como root... pero el transmission lo envia usando el usuario transmission-daemon

      Yo lo solucione ejecutando el transmission como root (hay que cambiar el usuario en el fichero /etc/init.d/transmission-daemon). Supongo que no es muy recomendable por seguridad pero es muy efectivo... espero que alguien me pueda explicar el inconveniente de hacerlo de este modo...

      1 saludo.

      Eliminar
    10. solo es peligroso si el servicio esta publicado en internet (nat en el ruter) y tiene una vulnerabilidad. Normalmente los paquetes Debian son los mas seguros.

      Eliminar
  13. Como soluciono el problema este?
    Error: Permission denied (/mnt/media/pelis/Roadkill (HDRip) (Elitetorrent.net).avi)

    ResponderEliminar
    Respuestas
    1. Hola Rusty,

      A mi me daba este error y me funcionó modificando el fstab con el uid y el gid del usuario debian-transmission.

      Eliminar
    2. asi asignas los permisos adecuados a la hora de automontar y le asignas como propietario el del usuario que arranca el transmission. Buena observacion David, es usted un crá.

      Eliminar
  14. juan mol,
    ¿que sistema operativo usas? ¿raspbian? ¿debian wheezy?

    ResponderEliminar
  15. Yo tengo dos problemas...

    1. Si pongo un torrent muy pesado (5Gb o así) se me cuelga por completo

    2. Cuando pongo mas de un torrente a la vez, también se me cuelga.

    sabéis porque puede ser?

    Saludos!

    ResponderEliminar
    Respuestas
    1. ... a partir de ahora le llamaré ... Meneillos xD

      si tienes la última versión de Raspbian con los ajustes que pongo en la primera parte del post, tiene que funcionar si o si. Si te sigue fallando, es más probable que sea problema del formato de la partición donde va a grabarlo. Comprueba estas cosas antes de nada.

      Eliminar
  16. Alguien podría comentarme como modificar el archivo init.d para que arranque con el usuario root?
    Gracias!

    ResponderEliminar
  17. Hola, tengo un problema al ejecutar el aviso_torrent.sh, he modificado el fichero settings.json en el que he puesto la ruta correctamente. Si lo ejecuto desde la consola con usuario root se envia correctamente el mensaje mediante gtalk, pero desde el transmission nunca se envía.
    Por lo que he leído otra persona ha tenido el mismo problema y lo ha solucionado cambian el usuario con el que se arranca el servicio, hay alguna otra forma, no me gusta arrancar el servicio con root.
    Gracias

    ResponderEliminar
  18. Puede ser que si se descargan torrents en la targeta sd (16gb clase 10) no bajen a mas de 1,5Mb's? Tengo una linea de 100Mb

    Ira más rápido si se almacenan en un hdd exteno?

    ResponderEliminar