PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   Софт для PS3 (https://www.pspx.ru/forum/forumdisplay.php?f=300)
-   -   ps3netsrv для FreeBSD (nas4free и т.д.) (https://www.pspx.ru/forum/showthread.php?t=105225)

Hatab000 19.02.2015 16:11

ps3netsrv для FreeBSD (nas4free и т.д.)
 
Вложений: 3
Добрый день.
Хочу поделиться с вами решением для игры с сервера(домашнего NAS).

Давно назревала идея запилить что то подобное,так как дома есть сервак Freebsd работающий 24/7. И всегда ломало перекачивать только что скачанные игры на PS3 через ftp. В принципе ps3netsrv можно установить на любой linux или BSD. Всевозможные роутеры,хранилища(NAS) итд. Так вот если для Linux есть готовое решение на всевозможных западных форумах,то для freebsd инфу пришлось собирать самому и додумывать некоторые моменты.

Готовый исходный код для FreeBSD(Вложение 10685)
Скомпиленный(ГОТОВЫЙ FeeBSD10) (Вложение 10686)

Сделать самому
Cкачиваем исходный код Вложение 10684

Распаковываем unzip

Добавляем в фаил main.cpp то что зеленым.

main.cpp

1455 for (;;)
1456 {
1457 struct sockaddr_in addr;
1458 unsigned int size;
1459 int cs;
1460 int i;
1461 int value;
1462
1463 size = sizeof(addr);
1464 cs = accept(s, (struct sockaddr *)&addr, (socklen_t *)&size);
1465
1466 if (cs < 0)
1467 {
1468 DPRINTF("Accept error: %d\n", get_network_error());
1469 printf("Network error.\n");
1470 break;
1471 }
1472
1473 value = 1;
1474 size = sizeof(value);
1475 if (setsockopt(s, IPPROTO_TCP, TCP_NODELAY, &value, size) < 0)
1476 {
1477 DPRINTF("Error setting socket option: %d\n", get_network_error());
1478 printf("Network error.\n");
1479 break;
1480 }
1481

1482 // Check for same client

В фаилах VIsioFile.cpp и VIsioFile.h меняем все off64_t на off_t

В папке с Makefile делаем gmake
На выходе мы получаем ps3netsrv для FREEBSD.(он появляется в этой же папке)
Использование

Usage: ./ps3netsrv rootdirectory [port] [whitelist]
Default port: 38008
Whitelist: x.x.x.x, where x is 0-255 or * (e.g 192.168.1.* to allow only connections from 192.168.1.0-192.168.1.255)

Например ps3netsrv /ps3/ 38008 172.16.0.* - значит что папка с играми /ps3/ порт 38008 разрешенно подключение только с 172.16.0.0-172.16.0.254
Необязательно

Так как у меня работает transmission-daemon(торрент качалка) права на все скачанные файлы у пользователя transmission.
Следовательно целесообразно организовать запуск ps3netsrv от имени transmission.
Можно сделать и от root и не забивать голову,но это не правильно.

Задать владельца chown transmission:transmission ps3netsrv
Задать права chmod 750 ps3netsrv

Cкопировать фаил ps3netsrv в /usr/local/bin (cp ps3netsrv /usr/local/bin), чтобы он виделся как команда из любого места в системе.

/usr/local/etc/rc.d/ps3netsrv скрипт для start stop status

Код:

#!/bin/sh
#
# PROVIDE: ps3netsrv
# REQUIRE: PS3 Net Server for Multiman
# KEYWORD:

. /etc/rc.subr

name="ps3netsrv"
rcvar=ps3netsrv_enable

command="/usr/local/bin/ps3netsrv"

ps3netsrv_user="transmission"
ps3netsrv_folder="patch_to_ps3_folder"
ps3netsrv_port="38008"
ps3netsrv_access="172.16.0.*"
ps3netsrv_pidfile="/var/run/ps3netsrv.pid"

start_cmd="/usr/sbin/daemon -f -u $ps3netsrv_user -p $ps3netsrv_pidfile $command $ps3netsrv_folder $ps3netsrv_port $ps3netsrv_access"

load_rc_config $name
: ${ps3netsrv_enable:=no}

run_rc_command "$1"


Исправьте под себя user folder access
С этим скриптом ps3netsrv будет запускаться как демон (/usr/sbin/daemon)
man daemon - для справки.

Запуск /usr/local/etc/rc.d/ps3netsrv start
Для автозапуска при загрузке пишем в rc.conf
ps3netsrv_enable="YES"

Управление
/usr/local/etc/rc.d/ps3netsrv start
/usr/local/etc/rc.d/ps3netsrv stop
/usr/local/etc/rc.d/ps3netsrv status

Вот и все.
Подключаемся через Multiman>net_host

Сам потестил на некоторых играх,все нормально грузиться,работает итд. Достаточно быстро.
В папке которую расшариваем, дожна быть папка GAMES и в ней уже игры.

!!!Устарело!!!

Запускать все это дело будем через скрипт ps3.sh
ps3.sh

Код:

#!/bin/sh
/usr/bin/nohup /usr/local/sbin/ps3netsrv /patch_to_ps3_folder/ 38008 172.16.0.*>/dev/null &


Запуск от имени другого пользователя
su -m transmission -c ps3.sh

Добавляем в cron

Это необходимо чтобы при перезагрузке само все запускалось.
В данном примере запуск из под root

@reboot root /patch_to_script/ps3.sh

или

@reboot transmission /bin/sleep 30 && /usr/bin/nohup /usr/local/sbin/ps3netsrv /mesto/torrent/download/ps3/ 38008 172.16.0.*>/dev/null &

Minatavrus 28.02.2015 16:57

Спасибо!
А то приходилось на NAS4Free городить виртуалку, на нее ставить Win7 и PS3NetSrv

Hatab000 10.03.2015 13:08

Цитата:

Сообщение от Minatavrus (Сообщение 1094521)
Спасибо!
А то приходилось на NAS4Free городить виртуалку, на нее ставить Win7 и PS3NetSrv

Жара!

ipkiller 27.10.2015 11:44

Странная "фигня" запустилось несколько раз, сейчас при монтировании, перед выходом в "волны" плойка зависает..
при этом такая реакция только на игры с наса..


перезалили игру
ЗАПУСТИЛАСЬ
вышел, зашел - опять не работает....

cyril-power 01.11.2015 12:29

ps3netsrv для dns-323, dns-313, CH3SNAS Conceptronics и других однотипных NAS
 
Вложений: 1
Привет всем! Я откомпилировал ps3netsrv для dns-323 и хотел бы поделиться исполняемым файликом. Может кому пригодится.
Запуск: ./ps3netsrv-original rootdirectory [port] [whitelist]
Default port: 38008
Whitelist: x.x.x.x, where x is 0-255 or * (e.g 192.168.1.* to allow only connections from 192.168.1.0-192.168.1.255)
Например: ./ps3netsrv-original /mnt/HD_a2/GAME 38008
Как демон: ./ps3netsrv-original /mnt/HD_a2/GAME 38008 &
Работает под ffp 0.5
Я использовал оригинальные исходники из темы Hatab000 про ps3netsrv для FreeBSD
Про автозапуск если кому надо спрашивайте, расскажу.

Hatab000 02.03.2016 21:45

Цитата:

Сообщение от ipkiller (Сообщение 1100355)
Странная "фигня" запустилось несколько раз, сейчас при монтировании, перед выходом в "волны" плойка зависает..
при этом такая реакция только на игры с наса..


перезалили игру
ЗАПУСТИЛАСЬ
вышел, зашел - опять не работает....


Даже не знаю что сказать, у меня все четко работает по сей день,вообще не притрагивался к этому всему.

Напишите на чем вы делаете ps3netsrv, а так же прощивка Ps3 версия MM

Hatab000 добавил 02.03.2016 в 21:45
Цитата:

Сообщение от cyril-power (Сообщение 1100422)
Привет всем! Я откомпилировал ps3netsrv для dns-323 и хотел бы поделиться исполняемым файликом. Может кому пригодится.
Запуск: ./ps3netsrv-original rootdirectory [port] [whitelist]
Default port: 38008
Whitelist: x.x.x.x, where x is 0-255 or * (e.g 192.168.1.* to allow only connections from 192.168.1.0-192.168.1.255)
Например: ./ps3netsrv-original /mnt/HD_a2/GAME 38008
Как демон: ./ps3netsrv-original /mnt/HD_a2/GAME 38008 &
Работает под ffp 0.5
Я использовал оригинальные исходники из темы Hatab000 про ps3netsrv для FreeBSD
Про автозапуск если кому надо спрашивайте, расскажу.

По сути это для Linux ?
Я просто не знаком с dns-323

cyril-power 02.03.2016 22:01

http://dns323.kood.org/

mvrht72 05.11.2017 23:06

Hatab000, а можно такое же, но патченное для weman изготовить?
UPD. Извините. Все работает. Огромное огромное спасибо!!!

Hatab000 08.11.2017 23:00

Цитата:

Сообщение от mvrht72 (Сообщение 1121250)
Hatab000, а можно такое же, но патченное для weman изготовить?
UPD. Извините. Все работает. Огромное огромное спасибо!!!

:good:

Alex_san 24.02.2018 23:24

Цитата:

Сообщение от Hatab000 (Сообщение 1093934)
Добрый день.
Хочу поделиться с вами решением для игры с сервера(домашнего NAS).

Спасибо Вам за труд и детальные пояснения.
К сожалению, у меня исполняемый файл отказывается исполняться напрочь:
Цитата:

nas4free: Media# ./ps3netsrv /mnt/Data/Media/PS3NetServer 38008
Error in initialization.
Как только я не пробовал - результат один и он выше.
NAS4Free у меня на основе FreeBSD11, возможно, проблема именно в этом.

Alex_san 03.03.2018 16:16

Вложений: 1
Сам спросил, сам отвечаю.
Под FreeBSD 11 отлично работает C++ версия сервера. Собирал самолично, проверка проблем не выявила.


Текущее время: 20:37. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.