<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://hurlster.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gqwill69</id>
	<title>Hurlster Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://hurlster.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gqwill69"/>
	<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php/Special:Contributions/Gqwill69"/>
	<updated>2026-10-11T11:24:45Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=A10&amp;diff=2753</id>
		<title>A10</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=A10&amp;diff=2753"/>
		<updated>2026-09-22T23:22:01Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: Created page with &amp;quot;* A10 Thunder 840 (TH840) Opnsense firewall Direct write the opensense nano amd64 img to a SSD or a Compact Flash. Boot the appliance and you have &amp;lt;3minutes to create the file and execute it.  * A10 Thunder 840 install of Opnsense:&amp;lt;br&amp;gt; Must create watchdog disable script with &amp;quot;vi&amp;quot;&amp;lt;br&amp;gt; *vi /tmp/disarm_wdt.c&amp;lt;br&amp;gt; &amp;lt;pre&amp;gt; #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;fcntl.h&amp;gt; #include &amp;lt;unistd.h&amp;gt; #include &amp;lt;machine/cpufunc.h&amp;gt;  #define PORT_INDEX 0x4E #define PORT_DATA  0x4F  int main(void) {...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* A10 Thunder 840 (TH840) Opnsense firewall&lt;br /&gt;
Direct write the opensense nano amd64 img to a SSD or a Compact Flash. Boot the appliance and you have &amp;lt;3minutes to create the file and execute it.&lt;br /&gt;
&lt;br /&gt;
* A10 Thunder 840 install of Opnsense:&amp;lt;br&amp;gt;&lt;br /&gt;
Must create watchdog disable script with &amp;quot;vi&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
*vi /tmp/disarm_wdt.c&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;machine/cpufunc.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define PORT_INDEX 0x4E&lt;br /&gt;
#define PORT_DATA  0x4F&lt;br /&gt;
&lt;br /&gt;
int main(void) {&lt;br /&gt;
    int fd = open(&amp;quot;/dev/io&amp;quot;, O_RDONLY);&lt;br /&gt;
    if (fd &amp;lt; 0) {&lt;br /&gt;
        perror(&amp;quot;Failed to open /dev/io&amp;quot;);&lt;br /&gt;
        return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Enter Extended Function Mode */&lt;br /&gt;
    outb(PORT_INDEX, 0x87);&lt;br /&gt;
    outb(PORT_INDEX, 0x87);&lt;br /&gt;
&lt;br /&gt;
    /* Select Logical Device 8 (Watchdog Timer) */&lt;br /&gt;
    outb(PORT_INDEX, 0x07);&lt;br /&gt;
    outb(PORT_DATA, 0x08);&lt;br /&gt;
&lt;br /&gt;
    /* Set timeout counter to 0 (CR F6) */&lt;br /&gt;
    outb(PORT_INDEX, 0xF6);&lt;br /&gt;
    outb(PORT_DATA, 0x00);&lt;br /&gt;
&lt;br /&gt;
    /* Deactivate device (CR 30 = 0x00) */&lt;br /&gt;
    outb(PORT_INDEX, 0x30);&lt;br /&gt;
    outb(PORT_DATA, 0x00);&lt;br /&gt;
&lt;br /&gt;
    /* Exit Extended Function Mode */&lt;br /&gt;
    outb(PORT_INDEX, 0xAA);&lt;br /&gt;
&lt;br /&gt;
    close(fd);&lt;br /&gt;
    printf(&amp;quot;NCT6776F hardware watchdog disarmed successfully.\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cc -O2 /tmp/disarm_wdt.c -o /usr/local/etc/rc.syshook.d/early/05-disarm_wdt&lt;br /&gt;
chmod 755 /usr/local/etc/rc.syshook.d/early/05-disarm_wdt&lt;br /&gt;
/usr/local/etc/rc.syshook.d/early/05-disarm_wdt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Controld&amp;diff=2752</id>
		<title>Controld</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Controld&amp;diff=2752"/>
		<updated>2026-07-23T18:31:13Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: Created page with &amp;quot;&amp;lt;pre&amp;gt; [listener]   [listener.0]     ip = &amp;#039;0.0.0.0&amp;#039;     port = 53      [listener.0.policy]       name = &amp;#039;My Policy&amp;#039;       rules = [         {        &amp;#039;*.local&amp;#039; = [&amp;#039;upstream.1&amp;#039;]},         {        &amp;#039;*.customdomain.com&amp;#039; = [&amp;#039;upstream.1&amp;#039;, &amp;#039;upstream.0&amp;#039;]},         {        &amp;#039;captive.apple.com&amp;#039; = []},         {        &amp;#039;aircanadawifi.com&amp;#039; = []},         {        &amp;#039;acwifi.com&amp;#039; = []},         {        &amp;#039;gogoinflight.com&amp;#039; = []},         {        &amp;#039;southwestwifi.com&amp;#039; = []},         {...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
[listener]&lt;br /&gt;
  [listener.0]&lt;br /&gt;
    ip = &#039;0.0.0.0&#039;&lt;br /&gt;
    port = 53&lt;br /&gt;
&lt;br /&gt;
    [listener.0.policy]&lt;br /&gt;
      name = &#039;My Policy&#039;&lt;br /&gt;
      rules = [&lt;br /&gt;
        {        &#039;*.local&#039; = [&#039;upstream.1&#039;]},&lt;br /&gt;
        {        &#039;*.customdomain.com&#039; = [&#039;upstream.1&#039;, &#039;upstream.0&#039;]},&lt;br /&gt;
        {        &#039;captive.apple.com&#039; = []},&lt;br /&gt;
        {        &#039;aircanadawifi.com&#039; = []},&lt;br /&gt;
        {        &#039;acwifi.com&#039; = []},&lt;br /&gt;
        {        &#039;gogoinflight.com&#039; = []},&lt;br /&gt;
        {        &#039;southwestwifi.com&#039; = []},&lt;br /&gt;
        {        &#039;singaporeair-krisworld.com&#039; = []},&lt;br /&gt;
        {        &#039;airborne.gogoinflight.com&#039; = []},&lt;br /&gt;
        {        &#039;aainflight.com&#039; = []},&lt;br /&gt;
        {        &#039;aa.viasat.com&#039; = []},&lt;br /&gt;
        {        &#039;deltawifi.com&#039; = []},&lt;br /&gt;
        {        &#039;wifi.delta.com&#039; = []},&lt;br /&gt;
        {        &#039;unitedwifi.com&#039; = []},&lt;br /&gt;
        {        &#039;shop.ba.com&#039; = []},&lt;br /&gt;
        {        &#039;alaskawifi.com&#039; = []},&lt;br /&gt;
        {        &#039;flyfi.com&#039; = []},&lt;br /&gt;
        {        &#039;wifi.airasia.com&#039; = []},&lt;br /&gt;
        {        &#039;wifi.sncf&#039; = []},&lt;br /&gt;
        {        &#039;wifi.tgv-lyria.com&#039; = []},&lt;br /&gt;
        {        &#039;freewlan.sbb.ch&#039; = []},&lt;br /&gt;
        {        &#039;register.onboard.eurostar.com&#039; = []},&lt;br /&gt;
        {        &#039;thalysnet.com&#039; = []},&lt;br /&gt;
        {        &#039;iceportal.de&#039; = []},&lt;br /&gt;
        {        &#039;vvm.mstore.msg.t-mobile.com&#039; = []},&lt;br /&gt;
        {        &#039;wifi.inflightinternet.com&#039; = []},&lt;br /&gt;
        {        &#039;captive.inflightinternet.com&#039; = []},&lt;br /&gt;
        {        &#039;airbornesecure.inflightinternet.com&#039; = []},&lt;br /&gt;
        {        &#039;ip.videotron.ca&#039; = []},&lt;br /&gt;
        {        &#039;wifi.united.com&#039; = []},&lt;br /&gt;
        {        &#039;etihadwi-fly.com&#039; = []},&lt;br /&gt;
        {        &#039;inflight-wifi.com&#039; = []},&lt;br /&gt;
        {        &#039;southwestwifi.com&#039; = []},&lt;br /&gt;
        {        &#039;wifi.cathaypacific.com&#039; = []},&lt;br /&gt;
        {        &#039;timhortonswifi.com&#039; = []},&lt;br /&gt;
        {        &#039;detectportal.firefox.com&#039; = []},&lt;br /&gt;
        {        &#039;portal.mist.com&#039; = []},&lt;br /&gt;
        {        &#039;wifi.connected.xfinity.com&#039; = []},&lt;br /&gt;
        {        &#039;vvm.ee.co.uk&#039; = []},&lt;br /&gt;
        {        &#039;wifi.tgvlyria.com&#039; = []},&lt;br /&gt;
        {        &#039;guestinternet.com&#039; = []},&lt;br /&gt;
        {        &#039;*.network-auth.com&#039; = []},&lt;br /&gt;
        {        &#039;secure.datavalet.io&#039; = []},&lt;br /&gt;
        {        &#039;login.cloud5.com&#039; = []},&lt;br /&gt;
        {        &#039;wirelessportal.americanexpress.com&#039; = []},&lt;br /&gt;
        {        &#039;*.globalreachtech.com&#039; = []},&lt;br /&gt;
        {        &#039;neverssl.com&#039; = []}&lt;br /&gt;
      ]&lt;br /&gt;
&lt;br /&gt;
[network]&lt;br /&gt;
  [network.0]&lt;br /&gt;
    name = &#039;Network 0&#039;&lt;br /&gt;
    cidrs = [&#039;0.0.0.0/0&#039;]&lt;br /&gt;
&lt;br /&gt;
[upstream]&lt;br /&gt;
  [upstream.0]&lt;br /&gt;
    type = &#039;doh&#039;&lt;br /&gt;
    endpoint = &#039;https://dns.controld.com/SERVICE-ID&#039;&lt;br /&gt;
    bootstrap_ip = &#039;X.X.X.X&#039;&lt;br /&gt;
    timeout = 5000&lt;br /&gt;
&lt;br /&gt;
  [upstream.1]&lt;br /&gt;
    name = &#039;OPNSENSE&#039;&lt;br /&gt;
    type = &#039;legacy&#039;&lt;br /&gt;
    endpoint = &#039;192.168.0.1:53&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Pine64&amp;diff=2751</id>
		<title>Pine64</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Pine64&amp;diff=2751"/>
		<updated>2026-04-18T16:44:14Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: Created page with &amp;quot;* Support UB500 bluetooth USB dongle &amp;lt;pre&amp;gt; cd /lib/firmware/rtl_bt sudo wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/rtl_bt/rtl8761bu_config.bin sudo wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/rtl_bt/rtl8761bu_fw.bin &amp;lt;/pre&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Support UB500 bluetooth USB dongle&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /lib/firmware/rtl_bt&lt;br /&gt;
sudo wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/rtl_bt/rtl8761bu_config.bin&lt;br /&gt;
sudo wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/rtl_bt/rtl8761bu_fw.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Samba&amp;diff=2750</id>
		<title>Samba</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Samba&amp;diff=2750"/>
		<updated>2026-03-22T23:46:22Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;smb.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[global]&lt;br /&gt;
   workgroup = WORKGROUP&lt;br /&gt;
   server string = %h&lt;br /&gt;
   server role = standalone server&lt;br /&gt;
&lt;br /&gt;
   # SMB protocol&lt;br /&gt;
   server min protocol = SMB2&lt;br /&gt;
   server max protocol = SMB3&lt;br /&gt;
&lt;br /&gt;
   # macOS compatibility&lt;br /&gt;
   vfs objects = fruit streams_xattr&lt;br /&gt;
   fruit:metadata = stream&lt;br /&gt;
   fruit:posix_rename = yes&lt;br /&gt;
   fruit:veto_appledouble = no&lt;br /&gt;
   fruit:delete_empty_adfiles = yes&lt;br /&gt;
   fruit:wipe_intentionally_left_blank_rfork = yes&lt;br /&gt;
&lt;br /&gt;
   # Stability&lt;br /&gt;
   aio read size = 1&lt;br /&gt;
   aio write size = 1&lt;br /&gt;
   strict locking = no&lt;br /&gt;
   durable handles = yes&lt;br /&gt;
   kernel oplocks = no&lt;br /&gt;
   kernel share modes = no&lt;br /&gt;
&lt;br /&gt;
   # Performance tuning for Windows&lt;br /&gt;
   socket options = TCP_NODELAY IPTOS_LOWDELAY&lt;br /&gt;
   use sendfile = yes&lt;br /&gt;
   min receivefile size = 16384&lt;br /&gt;
&lt;br /&gt;
   # Networking&lt;br /&gt;
   interfaces = 127.0.0.0/8 ens192&lt;br /&gt;
   bind interfaces only = yes&lt;br /&gt;
&lt;br /&gt;
   # Permissions&lt;br /&gt;
   inherit permissions = yes&lt;br /&gt;
   unix extensions = no&lt;br /&gt;
&lt;br /&gt;
   map to guest = Bad User&lt;br /&gt;
&lt;br /&gt;
[storage]&lt;br /&gt;
   comment = Storage&lt;br /&gt;
   path = /storage&lt;br /&gt;
   browseable = yes&lt;br /&gt;
   writable = yes&lt;br /&gt;
   read only = no&lt;br /&gt;
&lt;br /&gt;
   valid users = storage &#039;&#039;&#039;username&#039;&#039;&#039;&lt;br /&gt;
   force user = nobody&lt;br /&gt;
   force group = nogroup&lt;br /&gt;
&lt;br /&gt;
   # FORCE permissions regardless of client umask&lt;br /&gt;
   force create mode = 0777&lt;br /&gt;
   force directory mode = 2777&lt;br /&gt;
&lt;br /&gt;
   create mask = 0777&lt;br /&gt;
   directory mask = 2777&lt;br /&gt;
&lt;br /&gt;
   nt acl support = no&lt;br /&gt;
&lt;br /&gt;
   # Inherit parent permissions&lt;br /&gt;
   inherit permissions = yes&lt;br /&gt;
   inherit acls = yes&lt;br /&gt;
&lt;br /&gt;
   follow symlinks = yes&lt;br /&gt;
   wide links = yes&lt;br /&gt;
&lt;br /&gt;
[TimeMachine]&lt;br /&gt;
   comment = Time Machine Backup&lt;br /&gt;
   path = /mnt/timemachine&lt;br /&gt;
   browseable = no&lt;br /&gt;
   hide unreadable = yes&lt;br /&gt;
   access based share enum = yes&lt;br /&gt;
&lt;br /&gt;
   writable = yes&lt;br /&gt;
   read only = no&lt;br /&gt;
&lt;br /&gt;
   # Time Machine requirements&lt;br /&gt;
   vfs objects = fruit streams_xattr&lt;br /&gt;
   fruit:time machine = yes&lt;br /&gt;
   fruit:time machine max size = 5000G&lt;br /&gt;
   fruit:model = MacSamba&lt;br /&gt;
&lt;br /&gt;
   # Security (REQUIRED)&lt;br /&gt;
   guest ok = no&lt;br /&gt;
   valid users = &#039;&#039;&#039;username&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avahi Service&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; standalone=&#039;no&#039;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE service-group SYSTEM &amp;quot;avahi-service.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;service-group&amp;gt;&lt;br /&gt;
  &amp;lt;name replace-wildcards=&amp;quot;yes&amp;quot;&amp;gt;%h&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;service&amp;gt;&lt;br /&gt;
    &amp;lt;type&amp;gt;_smb._tcp&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;port&amp;gt;445&amp;lt;/port&amp;gt;&lt;br /&gt;
  &amp;lt;/service&amp;gt;&lt;br /&gt;
  &amp;lt;service&amp;gt;&lt;br /&gt;
    &amp;lt;type&amp;gt;_device-info._tcp&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;port&amp;gt;0&amp;lt;/port&amp;gt;&lt;br /&gt;
    &amp;lt;txt-record&amp;gt;model=TimeCapsule8,119&amp;lt;/txt-record&amp;gt;&lt;br /&gt;
  &amp;lt;/service&amp;gt;&lt;br /&gt;
  &amp;lt;service&amp;gt;&lt;br /&gt;
    &amp;lt;type&amp;gt;_adisk._tcp&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;txt-record&amp;gt;dk0=adVN=TimeMachine,adVF=0x82&amp;lt;/txt-record&amp;gt;&lt;br /&gt;
    &amp;lt;txt-record&amp;gt;sys=waMa=0,adVF=0x100&amp;lt;/txt-record&amp;gt;&lt;br /&gt;
  &amp;lt;/service&amp;gt;&lt;br /&gt;
&amp;lt;/service-group&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Samba&amp;diff=2749</id>
		<title>Samba</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Samba&amp;diff=2749"/>
		<updated>2026-03-22T23:45:26Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;smb.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[global]&lt;br /&gt;
   workgroup = WORKGROUP&lt;br /&gt;
   server string = %h&lt;br /&gt;
   server role = standalone server&lt;br /&gt;
&lt;br /&gt;
   # SMB protocol&lt;br /&gt;
   server min protocol = SMB2&lt;br /&gt;
   server max protocol = SMB3&lt;br /&gt;
&lt;br /&gt;
   # macOS compatibility&lt;br /&gt;
   vfs objects = fruit streams_xattr&lt;br /&gt;
   fruit:metadata = stream&lt;br /&gt;
   fruit:posix_rename = yes&lt;br /&gt;
   fruit:veto_appledouble = no&lt;br /&gt;
   fruit:delete_empty_adfiles = yes&lt;br /&gt;
   fruit:wipe_intentionally_left_blank_rfork = yes&lt;br /&gt;
&lt;br /&gt;
   # Stability&lt;br /&gt;
   aio read size = 1&lt;br /&gt;
   aio write size = 1&lt;br /&gt;
   strict locking = no&lt;br /&gt;
   durable handles = yes&lt;br /&gt;
   kernel oplocks = no&lt;br /&gt;
   kernel share modes = no&lt;br /&gt;
&lt;br /&gt;
   # Performance tuning for Windows&lt;br /&gt;
   socket options = TCP_NODELAY IPTOS_LOWDELAY&lt;br /&gt;
   use sendfile = yes&lt;br /&gt;
   min receivefile size = 16384&lt;br /&gt;
&lt;br /&gt;
   # Networking&lt;br /&gt;
   interfaces = 127.0.0.0/8 ens192&lt;br /&gt;
   bind interfaces only = yes&lt;br /&gt;
&lt;br /&gt;
   # Permissions&lt;br /&gt;
   inherit permissions = yes&lt;br /&gt;
   unix extensions = no&lt;br /&gt;
&lt;br /&gt;
   map to guest = Bad User&lt;br /&gt;
&lt;br /&gt;
[storage]&lt;br /&gt;
   comment = Storage&lt;br /&gt;
   path = /storage&lt;br /&gt;
   browseable = yes&lt;br /&gt;
   writable = yes&lt;br /&gt;
   read only = no&lt;br /&gt;
&lt;br /&gt;
   valid users = storage &#039;&#039;&#039;username&#039;&#039;&#039;&lt;br /&gt;
   force user = nobody&lt;br /&gt;
   force group = nogroup&lt;br /&gt;
&lt;br /&gt;
   # FORCE permissions regardless of client umask&lt;br /&gt;
   force create mode = 0777&lt;br /&gt;
   force directory mode = 2777&lt;br /&gt;
&lt;br /&gt;
   create mask = 0777&lt;br /&gt;
   directory mask = 2777&lt;br /&gt;
&lt;br /&gt;
   nt acl support = no&lt;br /&gt;
&lt;br /&gt;
   # Inherit parent permissions&lt;br /&gt;
   inherit permissions = yes&lt;br /&gt;
   inherit acls = yes&lt;br /&gt;
&lt;br /&gt;
   follow symlinks = yes&lt;br /&gt;
   wide links = yes&lt;br /&gt;
&lt;br /&gt;
[TimeMachine]&lt;br /&gt;
   comment = Time Machine Backup&lt;br /&gt;
   path = /mnt/timemachine&lt;br /&gt;
   browseable = no&lt;br /&gt;
   hide unreadable = yes&lt;br /&gt;
   access based share enum = yes&lt;br /&gt;
&lt;br /&gt;
   writable = yes&lt;br /&gt;
   read only = no&lt;br /&gt;
&lt;br /&gt;
   # Time Machine requirements&lt;br /&gt;
   vfs objects = fruit streams_xattr&lt;br /&gt;
   fruit:time machine = yes&lt;br /&gt;
   fruit:time machine max size = 5000G&lt;br /&gt;
   fruit:model = MacSamba&lt;br /&gt;
&lt;br /&gt;
   # Security (REQUIRED)&lt;br /&gt;
   guest ok = no&lt;br /&gt;
   valid users = &#039;&#039;&#039;username&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Orangepi&amp;diff=2748</id>
		<title>Orangepi</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Orangepi&amp;diff=2748"/>
		<updated>2026-02-20T00:49:59Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OrangePi 3B info&amp;lt;br&amp;gt;&lt;br /&gt;
Install the following image for bookworm/debian to SD/TF card&lt;br /&gt;
 Orangepi3b_1.0.8_debian_bookworm_server_linux5.10.160.img&lt;br /&gt;
Then run the following commands to fix Ethernet port not working&lt;br /&gt;
&amp;lt;h3&amp;gt;Option 1:&amp;lt;/h3&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
802-3-ethernet.speed:                   100&lt;br /&gt;
802-3-ethernet.duplex:                  full&lt;br /&gt;
802-3-ethernet.auto-negotiate:          no&lt;br /&gt;
&lt;br /&gt;
nmcli c modify Wired\ connection\ 1 802-3-ethernet.auto-negotiate yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*/etc/NetworkManager/system-connections# cat Wired\ connection\ 1.nmconnection &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
### ADD TO BOTTOM OF EXISTING CONFIG&lt;br /&gt;
### SET SPEED TO 100M&lt;br /&gt;
[802-3-ethernet]&lt;br /&gt;
speed=100&lt;br /&gt;
duplex=full&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then reboot&lt;br /&gt;
&amp;lt;h3&amp;gt;Option 2:&amp;lt;/h3&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
io -4 0xFDC60284 0x3f3f3f3f&lt;br /&gt;
io -4 0xFDC6028C 0x003f003f&lt;br /&gt;
io -4 0xFDC60298 0x3f003f00&lt;br /&gt;
io -4 0xFDC6029C 0x3f3f3f3f&lt;br /&gt;
io -4 0xfdc60388 0xFFFF0049&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Make permanent&amp;lt;br&amp;gt;&lt;br /&gt;
Add the following before &amp;quot;exit 0&amp;quot; on &#039;&#039;&#039;/etc/rc.local&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ETHERNET FIX&lt;br /&gt;
io -4 0xFDC60284 0x3f3f3f3f&lt;br /&gt;
io -4 0xFDC6028C 0x003f003f&lt;br /&gt;
io -4 0xFDC60298 0x3f003f00&lt;br /&gt;
io -4 0xFDC6029C 0x3f3f3f3f&lt;br /&gt;
io -4 0xfdc60388 0xFFFF0049&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 chmod +x /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
* Install to eMMC&lt;br /&gt;
 scp Orangepi3b_1.0.8_debian_bookworm_server_linux5.10.160.img orangepi@orangepi3b:~/&lt;br /&gt;
* Find eMMC drive&lt;br /&gt;
 ls /dev/mmcblk*boot0 | cut -c1-12&lt;br /&gt;
* Clear eMMC&lt;br /&gt;
 sudo dd bs=1M if=/dev/zero of=/dev/mmcblk0 count=1000 status=progress&lt;br /&gt;
 sudo sync&lt;br /&gt;
* Copy img to eMMC&lt;br /&gt;
 dd bs=1M if=Orangepi3b_1.0.8_debian_bookworm_server_linux5.10.160.img of=/dev/mmcblk0 status=progress&lt;br /&gt;
 sudo sync&lt;br /&gt;
After successfully burning the Linux image of the development board to the eMMC,&amp;lt;br&amp;gt;&lt;br /&gt;
you can use the poweroff command to shut down. Then please pull out the TF card, and&amp;lt;br&amp;gt;&lt;br /&gt;
then short press the power button to turn on, and then the Linux system in the eMMC will&amp;lt;br&amp;gt;&lt;br /&gt;
be started.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Category Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Orangepi&amp;diff=2747</id>
		<title>Orangepi</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Orangepi&amp;diff=2747"/>
		<updated>2026-02-19T22:24:46Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OrangePi 3B info&amp;lt;br&amp;gt;&lt;br /&gt;
Install the following image for bookworm/debian to SD/TF card&lt;br /&gt;
 Orangepi3b_1.0.8_debian_bookworm_server_linux5.10.160.img&lt;br /&gt;
Then run the following commands to fix Ethernet port not working&lt;br /&gt;
&amp;lt;h3&amp;gt;Option 1:&amp;lt;/h3&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*/etc/NetworkManager/system-connections# cat Wired\ connection\ 1.nmconnection &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
### ADD TO BOTTOM OF EXISTING CONFIG&lt;br /&gt;
### SET SPEED TO 100M&lt;br /&gt;
[802-3-ethernet]&lt;br /&gt;
speed=100&lt;br /&gt;
duplex=full&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then reboot&lt;br /&gt;
&amp;lt;h3&amp;gt;Option 2:&amp;lt;/h3&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
io -4 0xFDC60284 0x3f3f3f3f&lt;br /&gt;
io -4 0xFDC6028C 0x003f003f&lt;br /&gt;
io -4 0xFDC60298 0x3f003f00&lt;br /&gt;
io -4 0xFDC6029C 0x3f3f3f3f&lt;br /&gt;
io -4 0xfdc60388 0xFFFF0049&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Make permanent&amp;lt;br&amp;gt;&lt;br /&gt;
Add the following before &amp;quot;exit 0&amp;quot; on &#039;&#039;&#039;/etc/rc.local&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ETHERNET FIX&lt;br /&gt;
io -4 0xFDC60284 0x3f3f3f3f&lt;br /&gt;
io -4 0xFDC6028C 0x003f003f&lt;br /&gt;
io -4 0xFDC60298 0x3f003f00&lt;br /&gt;
io -4 0xFDC6029C 0x3f3f3f3f&lt;br /&gt;
io -4 0xfdc60388 0xFFFF0049&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 chmod +x /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
* Install to eMMC&lt;br /&gt;
 scp Orangepi3b_1.0.8_debian_bookworm_server_linux5.10.160.img orangepi@orangepi3b:~/&lt;br /&gt;
* Find eMMC drive&lt;br /&gt;
 ls /dev/mmcblk*boot0 | cut -c1-12&lt;br /&gt;
* Clear eMMC&lt;br /&gt;
 sudo dd bs=1M if=/dev/zero of=/dev/mmcblk0 count=1000 status=progress&lt;br /&gt;
 sudo sync&lt;br /&gt;
* Copy img to eMMC&lt;br /&gt;
 dd bs=1M if=Orangepi3b_1.0.8_debian_bookworm_server_linux5.10.160.img of=/dev/mmcblk0 status=progress&lt;br /&gt;
 sudo sync&lt;br /&gt;
After successfully burning the Linux image of the development board to the eMMC,&amp;lt;br&amp;gt;&lt;br /&gt;
you can use the poweroff command to shut down. Then please pull out the TF card, and&amp;lt;br&amp;gt;&lt;br /&gt;
then short press the power button to turn on, and then the Linux system in the eMMC will&amp;lt;br&amp;gt;&lt;br /&gt;
be started.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Category Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Orangepi&amp;diff=2746</id>
		<title>Orangepi</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Orangepi&amp;diff=2746"/>
		<updated>2026-02-19T21:24:31Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OrangePi 3B info&amp;lt;br&amp;gt;&lt;br /&gt;
Install the following image for bookworm/debian to SD/TF card&lt;br /&gt;
 Orangepi3b_1.0.8_debian_bookworm_server_linux5.10.160.img&lt;br /&gt;
Then run the following commands to fix Ethernet port not working&lt;br /&gt;
&amp;lt;h3&amp;gt;Option 1:&amp;lt;/h3&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*/etc/NetworkManager/system-connections# cat Wired\ connection\ 1.nmconnection &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[connection]&lt;br /&gt;
id=Wired connection 1&lt;br /&gt;
uuid=449b420e-a0c0&lt;br /&gt;
type=ethernet&lt;br /&gt;
autoconnect-priority=-999&lt;br /&gt;
interface-name=end1&lt;br /&gt;
timestamp=1771535068&lt;br /&gt;
&lt;br /&gt;
[ethernet]&lt;br /&gt;
&lt;br /&gt;
[ipv4]&lt;br /&gt;
method=auto&lt;br /&gt;
&lt;br /&gt;
[ipv6]&lt;br /&gt;
addr-gen-mode=default&lt;br /&gt;
method=auto&lt;br /&gt;
&lt;br /&gt;
[proxy]&lt;br /&gt;
### SET SPEED TO 100M&lt;br /&gt;
[802-3-ethernet]&lt;br /&gt;
speed=100&lt;br /&gt;
duplex=full&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then reboot&lt;br /&gt;
&amp;lt;h3&amp;gt;Option 2:&amp;lt;/h3&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
io -4 0xFDC60284 0x3f3f3f3f&lt;br /&gt;
io -4 0xFDC6028C 0x003f003f&lt;br /&gt;
io -4 0xFDC60298 0x3f003f00&lt;br /&gt;
io -4 0xFDC6029C 0x3f3f3f3f&lt;br /&gt;
io -4 0xfdc60388 0xFFFF0049&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Make permanent&amp;lt;br&amp;gt;&lt;br /&gt;
Add the following before &amp;quot;exit 0&amp;quot; on &#039;&#039;&#039;/etc/rc.local&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ETHERNET FIX&lt;br /&gt;
io -4 0xFDC60284 0x3f3f3f3f&lt;br /&gt;
io -4 0xFDC6028C 0x003f003f&lt;br /&gt;
io -4 0xFDC60298 0x3f003f00&lt;br /&gt;
io -4 0xFDC6029C 0x3f3f3f3f&lt;br /&gt;
io -4 0xfdc60388 0xFFFF0049&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 chmod +x /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
* Install to eMMC&lt;br /&gt;
 scp Orangepi3b_1.0.8_debian_bookworm_server_linux5.10.160.img orangepi@orangepi3b:~/&lt;br /&gt;
* Find eMMC drive&lt;br /&gt;
 ls /dev/mmcblk*boot0 | cut -c1-12&lt;br /&gt;
* Clear eMMC&lt;br /&gt;
 sudo dd bs=1M if=/dev/zero of=/dev/mmcblk0 count=1000 status=progress&lt;br /&gt;
 sudo sync&lt;br /&gt;
* Copy img to eMMC&lt;br /&gt;
 dd bs=1M if=Orangepi3b_1.0.8_debian_bookworm_server_linux5.10.160.img of=/dev/mmcblk0 status=progress&lt;br /&gt;
 sudo sync&lt;br /&gt;
After successfully burning the Linux image of the development board to the eMMC,&amp;lt;br&amp;gt;&lt;br /&gt;
you can use the poweroff command to shut down. Then please pull out the TF card, and&amp;lt;br&amp;gt;&lt;br /&gt;
then short press the power button to turn on, and then the Linux system in the eMMC will&amp;lt;br&amp;gt;&lt;br /&gt;
be started.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Category Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Orangepi&amp;diff=2745</id>
		<title>Orangepi</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Orangepi&amp;diff=2745"/>
		<updated>2026-02-19T21:13:48Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OrangePi 3B info&amp;lt;br&amp;gt;&lt;br /&gt;
Install the following image for bookworm/debian to SD/TF card&lt;br /&gt;
 Orangepi3b_1.0.8_debian_bookworm_server_linux5.10.160.img&lt;br /&gt;
Then run the following commands to fix Ethernet port not working&lt;br /&gt;
&amp;lt;h3&amp;gt;Option 1:&amp;lt;/h3&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
 nmcli device modify end1 802-3-ethernet.speed 100&lt;br /&gt;
&amp;lt;h3&amp;gt;Option 2:&amp;lt;/h3&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
io -4 0xFDC60284 0x3f3f3f3f&lt;br /&gt;
io -4 0xFDC6028C 0x003f003f&lt;br /&gt;
io -4 0xFDC60298 0x3f003f00&lt;br /&gt;
io -4 0xFDC6029C 0x3f3f3f3f&lt;br /&gt;
io -4 0xfdc60388 0xFFFF0049&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Make permanent&amp;lt;br&amp;gt;&lt;br /&gt;
Add the following before &amp;quot;exit 0&amp;quot; on &#039;&#039;&#039;/etc/rc.local&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ETHERNET FIX&lt;br /&gt;
io -4 0xFDC60284 0x3f3f3f3f&lt;br /&gt;
io -4 0xFDC6028C 0x003f003f&lt;br /&gt;
io -4 0xFDC60298 0x3f003f00&lt;br /&gt;
io -4 0xFDC6029C 0x3f3f3f3f&lt;br /&gt;
io -4 0xfdc60388 0xFFFF0049&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 chmod +x /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
* Install to eMMC&lt;br /&gt;
 scp Orangepi3b_1.0.8_debian_bookworm_server_linux5.10.160.img orangepi@orangepi3b:~/&lt;br /&gt;
* Find eMMC drive&lt;br /&gt;
 ls /dev/mmcblk*boot0 | cut -c1-12&lt;br /&gt;
* Clear eMMC&lt;br /&gt;
 sudo dd bs=1M if=/dev/zero of=/dev/mmcblk0 count=1000 status=progress&lt;br /&gt;
 sudo sync&lt;br /&gt;
* Copy img to eMMC&lt;br /&gt;
 dd bs=1M if=Orangepi3b_1.0.8_debian_bookworm_server_linux5.10.160.img of=/dev/mmcblk0 status=progress&lt;br /&gt;
 sudo sync&lt;br /&gt;
After successfully burning the Linux image of the development board to the eMMC,&amp;lt;br&amp;gt;&lt;br /&gt;
you can use the poweroff command to shut down. Then please pull out the TF card, and&amp;lt;br&amp;gt;&lt;br /&gt;
then short press the power button to turn on, and then the Linux system in the eMMC will&amp;lt;br&amp;gt;&lt;br /&gt;
be started.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Category Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Ubuntu_Server_Setup&amp;diff=2744</id>
		<title>Ubuntu Server Setup</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Ubuntu_Server_Setup&amp;diff=2744"/>
		<updated>2026-01-23T06:10:14Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: /* Artificial Intelligence A.I. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page defines all the services that I run on my home server. This is mainly a recovery guide in the case that it [http://www.urbandictionary.com/define.php?term=poop poops] itself.&lt;br /&gt;
&lt;br /&gt;
* APACHE&lt;br /&gt;
* HDDTEMP&lt;br /&gt;
* DNSMASQ&lt;br /&gt;
* SQUID&lt;br /&gt;
* MBMON&lt;br /&gt;
* [[Time_Machine|IETD]]&lt;br /&gt;
* [[Samba|SMBD]]&lt;br /&gt;
* [[Mediatomb|MEDIATOMB]]&lt;br /&gt;
* [[PulseAudio|PULSEAUDIO]]&lt;br /&gt;
* [[Mt-daapd|MT-DAAPD]] &#039;&#039;&amp;lt;-- iTunes 10 incompatible&#039;&#039;&lt;br /&gt;
* &amp;lt;del&amp;gt;PROFTPD&amp;lt;/del&amp;gt; &#039;&#039;&amp;lt;-- replaced by using sftp&#039;&#039;&lt;br /&gt;
* [http://www.intermapper.com/download-intermapper INTERMAPPER]&lt;br /&gt;
* [[MPD]]&lt;br /&gt;
* [[TFTP|TFTPD]]&lt;br /&gt;
* NTPD&lt;br /&gt;
* [[Syslog|SYSLOGD]]&lt;br /&gt;
* [[SNMP|SNMPD]]&lt;br /&gt;
* [[IPLIST]]&lt;br /&gt;
&lt;br /&gt;
How to clean up(purge) uninstalled packages&lt;br /&gt;
 dpkg --purge $(dpkg --list | grep ^rc | awk &#039;{ print $2; }&#039;)&lt;br /&gt;
&lt;br /&gt;
Find best apt repos&lt;br /&gt;
 pip install apt-select&lt;br /&gt;
&lt;br /&gt;
 apt-select -t 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Pin Kernel&amp;lt;/h4&amp;gt;&lt;br /&gt;
This is allow apt-get upgrades without upgrading kernel versions&lt;br /&gt;
*/etc/apt/preferences&lt;br /&gt;
 Package: linux-generic linux-headers-generic linux-image-generic linux-restricted-modules-generic&lt;br /&gt;
 Pin: version 3.2.0.29.31&lt;br /&gt;
 Pin-Priority: 1001&lt;br /&gt;
* apt-cache policy linux-generic&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;How to set default kernel using GRUB2&amp;lt;/h4&amp;gt;&lt;br /&gt;
 #grep menuentry /boot/grub/grub.cfg &lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-12-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-12-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-11-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-11-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-8-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-8-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
&lt;br /&gt;
* If the following command outputs a submenu, then you have to prepend &amp;quot;Previous Linux versions&amp;gt;&amp;quot; ahead of your kernel name&lt;br /&gt;
 #grep submenu /boot/grub/grub.cfg&lt;br /&gt;
 submenu &amp;quot;Previous Linux versions&amp;quot; {&lt;br /&gt;
&lt;br /&gt;
*/etc/default/grub&lt;br /&gt;
 GRUB_DEFAULT=&amp;quot;&#039;&#039;&#039;Previous Linux versions&amp;gt;&#039;&#039;&#039;Ubuntu, with Linux 2.6.38-11-generic-pae&amp;quot;&lt;br /&gt;
if you don&#039;t set the Previous Linux versions, it doesn&#039;t go through the menu to find it..&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Network Performance fix&amp;lt;/h4&amp;gt;&lt;br /&gt;
 # echo &#039;net.core.wmem_max=12582912&#039; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 # echo &#039;net.core.rmem_max=12582912&#039; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
* PathTest download links&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Windows_32-bit.zip&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Linux_64-bit.zip&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Linux_32-bit.zip&lt;br /&gt;
* Thanks to http://www.cyberciti.biz/faq/linux-tcp-tuning/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Speed testing &amp;lt;/h4&amp;gt;&lt;br /&gt;
 wget https://www.dropbox.com/s/afsvduxtyi5emth/bench.sh -O - -o /dev/null|bash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Network Performance Test&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
http://netalyzr.icsi.berkeley.edu/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Bash aliases&amp;lt;/h4&amp;gt;&lt;br /&gt;
 alias apt-get=&#039;apt-get -o Acquire::ForceIPv4=true&#039;&lt;br /&gt;
 alias dmesg=&#039;dmesg -T&#039;&lt;br /&gt;
 alias wget=&#039;wget -4&#039;&lt;br /&gt;
 alias curl=&#039;curl -4&#039;&lt;br /&gt;
 alias sudo=&#039;sudo env PATH=$PATH XBMC_HOME=&amp;quot;/opt/plexhometheater/share/XBMC&amp;quot; &#039;&lt;br /&gt;
&lt;br /&gt;
== Artificial Intelligence A.I.==&lt;br /&gt;
Ubuntu 24.04 LTS headless server&amp;lt;br&amp;gt;&lt;br /&gt;
NVIDIA Tesla P4&amp;lt;br&amp;gt;&lt;br /&gt;
Issues with an Ubuntu 24.04 server VM &amp;quot;downtraining&amp;quot; PCI-E 3.0 Gen3 to PCI-E 3.0 Gen1 after the driver loads.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl disable snapd.apparmor.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;options nvidia NVreg_EnablePCIeGen3=3&amp;quot; &amp;gt; /etc/modprobe.d/nvidia-pci-fix.conf&lt;br /&gt;
echo &amp;quot;blacklist nouveau&amp;quot; &amp;gt; /etc/modprobe.d/blacklist-nouveau.conf&lt;br /&gt;
update-initramfs -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install nvidia-utils-580-server nvidia-headless-580-server nvtop -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Status Script&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /usr/local/sbin/nvidia-status.sh &lt;br /&gt;
#!/bin/bash&lt;br /&gt;
nvidia-smi -q | grep -A4 &amp;quot;PCIe Gener&amp;quot;&lt;br /&gt;
lspci -vvv -s $(lspci | grep -i &#039;NVIDIA&#039; | awk &#039;{print $1}&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nvidia-status.sh | grep -A5 LnkCap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Ubuntu_Server_Setup&amp;diff=2743</id>
		<title>Ubuntu Server Setup</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Ubuntu_Server_Setup&amp;diff=2743"/>
		<updated>2026-01-23T05:40:38Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: /* Artificial Intelligence A.I. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page defines all the services that I run on my home server. This is mainly a recovery guide in the case that it [http://www.urbandictionary.com/define.php?term=poop poops] itself.&lt;br /&gt;
&lt;br /&gt;
* APACHE&lt;br /&gt;
* HDDTEMP&lt;br /&gt;
* DNSMASQ&lt;br /&gt;
* SQUID&lt;br /&gt;
* MBMON&lt;br /&gt;
* [[Time_Machine|IETD]]&lt;br /&gt;
* [[Samba|SMBD]]&lt;br /&gt;
* [[Mediatomb|MEDIATOMB]]&lt;br /&gt;
* [[PulseAudio|PULSEAUDIO]]&lt;br /&gt;
* [[Mt-daapd|MT-DAAPD]] &#039;&#039;&amp;lt;-- iTunes 10 incompatible&#039;&#039;&lt;br /&gt;
* &amp;lt;del&amp;gt;PROFTPD&amp;lt;/del&amp;gt; &#039;&#039;&amp;lt;-- replaced by using sftp&#039;&#039;&lt;br /&gt;
* [http://www.intermapper.com/download-intermapper INTERMAPPER]&lt;br /&gt;
* [[MPD]]&lt;br /&gt;
* [[TFTP|TFTPD]]&lt;br /&gt;
* NTPD&lt;br /&gt;
* [[Syslog|SYSLOGD]]&lt;br /&gt;
* [[SNMP|SNMPD]]&lt;br /&gt;
* [[IPLIST]]&lt;br /&gt;
&lt;br /&gt;
How to clean up(purge) uninstalled packages&lt;br /&gt;
 dpkg --purge $(dpkg --list | grep ^rc | awk &#039;{ print $2; }&#039;)&lt;br /&gt;
&lt;br /&gt;
Find best apt repos&lt;br /&gt;
 pip install apt-select&lt;br /&gt;
&lt;br /&gt;
 apt-select -t 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Pin Kernel&amp;lt;/h4&amp;gt;&lt;br /&gt;
This is allow apt-get upgrades without upgrading kernel versions&lt;br /&gt;
*/etc/apt/preferences&lt;br /&gt;
 Package: linux-generic linux-headers-generic linux-image-generic linux-restricted-modules-generic&lt;br /&gt;
 Pin: version 3.2.0.29.31&lt;br /&gt;
 Pin-Priority: 1001&lt;br /&gt;
* apt-cache policy linux-generic&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;How to set default kernel using GRUB2&amp;lt;/h4&amp;gt;&lt;br /&gt;
 #grep menuentry /boot/grub/grub.cfg &lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-12-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-12-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-11-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-11-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-8-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-8-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
&lt;br /&gt;
* If the following command outputs a submenu, then you have to prepend &amp;quot;Previous Linux versions&amp;gt;&amp;quot; ahead of your kernel name&lt;br /&gt;
 #grep submenu /boot/grub/grub.cfg&lt;br /&gt;
 submenu &amp;quot;Previous Linux versions&amp;quot; {&lt;br /&gt;
&lt;br /&gt;
*/etc/default/grub&lt;br /&gt;
 GRUB_DEFAULT=&amp;quot;&#039;&#039;&#039;Previous Linux versions&amp;gt;&#039;&#039;&#039;Ubuntu, with Linux 2.6.38-11-generic-pae&amp;quot;&lt;br /&gt;
if you don&#039;t set the Previous Linux versions, it doesn&#039;t go through the menu to find it..&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Network Performance fix&amp;lt;/h4&amp;gt;&lt;br /&gt;
 # echo &#039;net.core.wmem_max=12582912&#039; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 # echo &#039;net.core.rmem_max=12582912&#039; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
* PathTest download links&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Windows_32-bit.zip&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Linux_64-bit.zip&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Linux_32-bit.zip&lt;br /&gt;
* Thanks to http://www.cyberciti.biz/faq/linux-tcp-tuning/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Speed testing &amp;lt;/h4&amp;gt;&lt;br /&gt;
 wget https://www.dropbox.com/s/afsvduxtyi5emth/bench.sh -O - -o /dev/null|bash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Network Performance Test&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
http://netalyzr.icsi.berkeley.edu/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Bash aliases&amp;lt;/h4&amp;gt;&lt;br /&gt;
 alias apt-get=&#039;apt-get -o Acquire::ForceIPv4=true&#039;&lt;br /&gt;
 alias dmesg=&#039;dmesg -T&#039;&lt;br /&gt;
 alias wget=&#039;wget -4&#039;&lt;br /&gt;
 alias curl=&#039;curl -4&#039;&lt;br /&gt;
 alias sudo=&#039;sudo env PATH=$PATH XBMC_HOME=&amp;quot;/opt/plexhometheater/share/XBMC&amp;quot; &#039;&lt;br /&gt;
&lt;br /&gt;
== Artificial Intelligence A.I.==&lt;br /&gt;
Ubuntu 24.04 LTS headless server&amp;lt;br&amp;gt;&lt;br /&gt;
NVIDIA Tesla P4&amp;lt;br&amp;gt;&lt;br /&gt;
Issues with an Ubuntu 24.04 server VM &amp;quot;downtraining&amp;quot; PCI-E 3.0 Gen3 to PCI-E 3.0 Gen1 after the driver loads.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl disable snapd.apparmor.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;options nvidia NVreg_EnablePCIeGen3=3&amp;quot; &amp;gt; /etc/modprobe.d/nvidia-pci-fix.conf&lt;br /&gt;
echo &amp;quot;blacklist nouveau&amp;quot; &amp;gt; /etc/modprobe.d/blacklist-nouveau.conf&lt;br /&gt;
update-initramfs -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install nvidia-utils-580-server nvidia-headless-580-server nvtop -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Status Script&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /usr/local/sbin/nvidia-status.sh &lt;br /&gt;
#!/bin/bash&lt;br /&gt;
nvidia-smi -q | grep -A4 &amp;quot;PCIe Gener&amp;quot;&lt;br /&gt;
lspci -vvv -s $(lspci | grep -i &#039;NVIDIA&#039; | awk &#039;{print $1}&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nvidia-status.sh | grep -A5 LnkCap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Ubuntu_Server_Setup&amp;diff=2742</id>
		<title>Ubuntu Server Setup</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Ubuntu_Server_Setup&amp;diff=2742"/>
		<updated>2026-01-23T05:38:31Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: /* Artificial Intelligence A.I. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page defines all the services that I run on my home server. This is mainly a recovery guide in the case that it [http://www.urbandictionary.com/define.php?term=poop poops] itself.&lt;br /&gt;
&lt;br /&gt;
* APACHE&lt;br /&gt;
* HDDTEMP&lt;br /&gt;
* DNSMASQ&lt;br /&gt;
* SQUID&lt;br /&gt;
* MBMON&lt;br /&gt;
* [[Time_Machine|IETD]]&lt;br /&gt;
* [[Samba|SMBD]]&lt;br /&gt;
* [[Mediatomb|MEDIATOMB]]&lt;br /&gt;
* [[PulseAudio|PULSEAUDIO]]&lt;br /&gt;
* [[Mt-daapd|MT-DAAPD]] &#039;&#039;&amp;lt;-- iTunes 10 incompatible&#039;&#039;&lt;br /&gt;
* &amp;lt;del&amp;gt;PROFTPD&amp;lt;/del&amp;gt; &#039;&#039;&amp;lt;-- replaced by using sftp&#039;&#039;&lt;br /&gt;
* [http://www.intermapper.com/download-intermapper INTERMAPPER]&lt;br /&gt;
* [[MPD]]&lt;br /&gt;
* [[TFTP|TFTPD]]&lt;br /&gt;
* NTPD&lt;br /&gt;
* [[Syslog|SYSLOGD]]&lt;br /&gt;
* [[SNMP|SNMPD]]&lt;br /&gt;
* [[IPLIST]]&lt;br /&gt;
&lt;br /&gt;
How to clean up(purge) uninstalled packages&lt;br /&gt;
 dpkg --purge $(dpkg --list | grep ^rc | awk &#039;{ print $2; }&#039;)&lt;br /&gt;
&lt;br /&gt;
Find best apt repos&lt;br /&gt;
 pip install apt-select&lt;br /&gt;
&lt;br /&gt;
 apt-select -t 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Pin Kernel&amp;lt;/h4&amp;gt;&lt;br /&gt;
This is allow apt-get upgrades without upgrading kernel versions&lt;br /&gt;
*/etc/apt/preferences&lt;br /&gt;
 Package: linux-generic linux-headers-generic linux-image-generic linux-restricted-modules-generic&lt;br /&gt;
 Pin: version 3.2.0.29.31&lt;br /&gt;
 Pin-Priority: 1001&lt;br /&gt;
* apt-cache policy linux-generic&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;How to set default kernel using GRUB2&amp;lt;/h4&amp;gt;&lt;br /&gt;
 #grep menuentry /boot/grub/grub.cfg &lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-12-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-12-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-11-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-11-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-8-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-8-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
&lt;br /&gt;
* If the following command outputs a submenu, then you have to prepend &amp;quot;Previous Linux versions&amp;gt;&amp;quot; ahead of your kernel name&lt;br /&gt;
 #grep submenu /boot/grub/grub.cfg&lt;br /&gt;
 submenu &amp;quot;Previous Linux versions&amp;quot; {&lt;br /&gt;
&lt;br /&gt;
*/etc/default/grub&lt;br /&gt;
 GRUB_DEFAULT=&amp;quot;&#039;&#039;&#039;Previous Linux versions&amp;gt;&#039;&#039;&#039;Ubuntu, with Linux 2.6.38-11-generic-pae&amp;quot;&lt;br /&gt;
if you don&#039;t set the Previous Linux versions, it doesn&#039;t go through the menu to find it..&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Network Performance fix&amp;lt;/h4&amp;gt;&lt;br /&gt;
 # echo &#039;net.core.wmem_max=12582912&#039; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 # echo &#039;net.core.rmem_max=12582912&#039; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
* PathTest download links&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Windows_32-bit.zip&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Linux_64-bit.zip&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Linux_32-bit.zip&lt;br /&gt;
* Thanks to http://www.cyberciti.biz/faq/linux-tcp-tuning/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Speed testing &amp;lt;/h4&amp;gt;&lt;br /&gt;
 wget https://www.dropbox.com/s/afsvduxtyi5emth/bench.sh -O - -o /dev/null|bash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Network Performance Test&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
http://netalyzr.icsi.berkeley.edu/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Bash aliases&amp;lt;/h4&amp;gt;&lt;br /&gt;
 alias apt-get=&#039;apt-get -o Acquire::ForceIPv4=true&#039;&lt;br /&gt;
 alias dmesg=&#039;dmesg -T&#039;&lt;br /&gt;
 alias wget=&#039;wget -4&#039;&lt;br /&gt;
 alias curl=&#039;curl -4&#039;&lt;br /&gt;
 alias sudo=&#039;sudo env PATH=$PATH XBMC_HOME=&amp;quot;/opt/plexhometheater/share/XBMC&amp;quot; &#039;&lt;br /&gt;
&lt;br /&gt;
== Artificial Intelligence A.I.==&lt;br /&gt;
Ubuntu 24.04 LTS headless server&amp;lt;br&amp;gt;&lt;br /&gt;
NVIDIA Tesla P4&amp;lt;br&amp;gt;&lt;br /&gt;
Issues with an Ubuntu 24.04 server VM &amp;quot;downtraining&amp;quot; PCI-E 3.0 Gen3 to PCI-E 3.0 Gen1 after the driver loads.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl disable snapd.apparmor.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install nvidia-utils-580-server nvidia-headless-580-server nvtop -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;options nvidia NVreg_EnablePCIeGen3=3&amp;quot; &amp;gt; /etc/modprobe.d/nvidia-pci-fix.conf&lt;br /&gt;
echo &amp;quot;blacklist nouveau&amp;quot; &amp;gt; /etc/modprobe.d/blacklist-nouveau.conf&lt;br /&gt;
update-initramfs -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Status Script&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /usr/local/sbin/nvidia-status.sh &lt;br /&gt;
#!/bin/bash&lt;br /&gt;
nvidia-smi -q | grep -A4 &amp;quot;PCIe Gener&amp;quot;&lt;br /&gt;
lspci -vvv -s $(lspci | grep -i &#039;NVIDIA&#039; | awk &#039;{print $1}&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nvidia-status.sh | grep -A5 LnkCap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Ubuntu_Server_Setup&amp;diff=2741</id>
		<title>Ubuntu Server Setup</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Ubuntu_Server_Setup&amp;diff=2741"/>
		<updated>2026-01-23T05:35:26Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: /* Artificial Intelligence A.I. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page defines all the services that I run on my home server. This is mainly a recovery guide in the case that it [http://www.urbandictionary.com/define.php?term=poop poops] itself.&lt;br /&gt;
&lt;br /&gt;
* APACHE&lt;br /&gt;
* HDDTEMP&lt;br /&gt;
* DNSMASQ&lt;br /&gt;
* SQUID&lt;br /&gt;
* MBMON&lt;br /&gt;
* [[Time_Machine|IETD]]&lt;br /&gt;
* [[Samba|SMBD]]&lt;br /&gt;
* [[Mediatomb|MEDIATOMB]]&lt;br /&gt;
* [[PulseAudio|PULSEAUDIO]]&lt;br /&gt;
* [[Mt-daapd|MT-DAAPD]] &#039;&#039;&amp;lt;-- iTunes 10 incompatible&#039;&#039;&lt;br /&gt;
* &amp;lt;del&amp;gt;PROFTPD&amp;lt;/del&amp;gt; &#039;&#039;&amp;lt;-- replaced by using sftp&#039;&#039;&lt;br /&gt;
* [http://www.intermapper.com/download-intermapper INTERMAPPER]&lt;br /&gt;
* [[MPD]]&lt;br /&gt;
* [[TFTP|TFTPD]]&lt;br /&gt;
* NTPD&lt;br /&gt;
* [[Syslog|SYSLOGD]]&lt;br /&gt;
* [[SNMP|SNMPD]]&lt;br /&gt;
* [[IPLIST]]&lt;br /&gt;
&lt;br /&gt;
How to clean up(purge) uninstalled packages&lt;br /&gt;
 dpkg --purge $(dpkg --list | grep ^rc | awk &#039;{ print $2; }&#039;)&lt;br /&gt;
&lt;br /&gt;
Find best apt repos&lt;br /&gt;
 pip install apt-select&lt;br /&gt;
&lt;br /&gt;
 apt-select -t 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Pin Kernel&amp;lt;/h4&amp;gt;&lt;br /&gt;
This is allow apt-get upgrades without upgrading kernel versions&lt;br /&gt;
*/etc/apt/preferences&lt;br /&gt;
 Package: linux-generic linux-headers-generic linux-image-generic linux-restricted-modules-generic&lt;br /&gt;
 Pin: version 3.2.0.29.31&lt;br /&gt;
 Pin-Priority: 1001&lt;br /&gt;
* apt-cache policy linux-generic&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;How to set default kernel using GRUB2&amp;lt;/h4&amp;gt;&lt;br /&gt;
 #grep menuentry /boot/grub/grub.cfg &lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-12-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-12-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-11-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-11-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-8-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-8-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
&lt;br /&gt;
* If the following command outputs a submenu, then you have to prepend &amp;quot;Previous Linux versions&amp;gt;&amp;quot; ahead of your kernel name&lt;br /&gt;
 #grep submenu /boot/grub/grub.cfg&lt;br /&gt;
 submenu &amp;quot;Previous Linux versions&amp;quot; {&lt;br /&gt;
&lt;br /&gt;
*/etc/default/grub&lt;br /&gt;
 GRUB_DEFAULT=&amp;quot;&#039;&#039;&#039;Previous Linux versions&amp;gt;&#039;&#039;&#039;Ubuntu, with Linux 2.6.38-11-generic-pae&amp;quot;&lt;br /&gt;
if you don&#039;t set the Previous Linux versions, it doesn&#039;t go through the menu to find it..&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Network Performance fix&amp;lt;/h4&amp;gt;&lt;br /&gt;
 # echo &#039;net.core.wmem_max=12582912&#039; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 # echo &#039;net.core.rmem_max=12582912&#039; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
* PathTest download links&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Windows_32-bit.zip&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Linux_64-bit.zip&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Linux_32-bit.zip&lt;br /&gt;
* Thanks to http://www.cyberciti.biz/faq/linux-tcp-tuning/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Speed testing &amp;lt;/h4&amp;gt;&lt;br /&gt;
 wget https://www.dropbox.com/s/afsvduxtyi5emth/bench.sh -O - -o /dev/null|bash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Network Performance Test&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
http://netalyzr.icsi.berkeley.edu/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Bash aliases&amp;lt;/h4&amp;gt;&lt;br /&gt;
 alias apt-get=&#039;apt-get -o Acquire::ForceIPv4=true&#039;&lt;br /&gt;
 alias dmesg=&#039;dmesg -T&#039;&lt;br /&gt;
 alias wget=&#039;wget -4&#039;&lt;br /&gt;
 alias curl=&#039;curl -4&#039;&lt;br /&gt;
 alias sudo=&#039;sudo env PATH=$PATH XBMC_HOME=&amp;quot;/opt/plexhometheater/share/XBMC&amp;quot; &#039;&lt;br /&gt;
&lt;br /&gt;
== Artificial Intelligence A.I.==&lt;br /&gt;
Ubuntu 24.04 LTS headless server&amp;lt;br&amp;gt;&lt;br /&gt;
NVIDIA Tesla P4&amp;lt;br&amp;gt;&lt;br /&gt;
Issues with an Ubuntu 24.04 server VM &amp;quot;downtraining&amp;quot; PCI-E 3.0 Gen3 to PCI-E 3.0 Gen1 after the driver loads.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install nvidia-utils-580-server nvidia-headless-580-server nvtop -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;options nvidia NVreg_EnablePCIeGen3=3&amp;quot; &amp;gt; /etc/modprobe.d/nvidia-pci-fix.conf&lt;br /&gt;
echo &amp;quot;blacklist nouveau&amp;quot; &amp;gt; /etc/modprobe.d/blacklist-nouveau.conf&lt;br /&gt;
update-initramfs -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Status Script&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /usr/local/sbin/nvidia-status.sh &lt;br /&gt;
#!/bin/bash&lt;br /&gt;
nvidia-smi -q | grep -A4 &amp;quot;PCIe Gener&amp;quot;&lt;br /&gt;
lspci -vvv -s $(lspci | grep -i &#039;NVIDIA&#039; | awk &#039;{print $1}&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nvidia-status.sh | grep -A5 LnkCap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Ubuntu_Server_Setup&amp;diff=2740</id>
		<title>Ubuntu Server Setup</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Ubuntu_Server_Setup&amp;diff=2740"/>
		<updated>2026-01-23T05:27:50Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: /* Artificial Intelligence A.I. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page defines all the services that I run on my home server. This is mainly a recovery guide in the case that it [http://www.urbandictionary.com/define.php?term=poop poops] itself.&lt;br /&gt;
&lt;br /&gt;
* APACHE&lt;br /&gt;
* HDDTEMP&lt;br /&gt;
* DNSMASQ&lt;br /&gt;
* SQUID&lt;br /&gt;
* MBMON&lt;br /&gt;
* [[Time_Machine|IETD]]&lt;br /&gt;
* [[Samba|SMBD]]&lt;br /&gt;
* [[Mediatomb|MEDIATOMB]]&lt;br /&gt;
* [[PulseAudio|PULSEAUDIO]]&lt;br /&gt;
* [[Mt-daapd|MT-DAAPD]] &#039;&#039;&amp;lt;-- iTunes 10 incompatible&#039;&#039;&lt;br /&gt;
* &amp;lt;del&amp;gt;PROFTPD&amp;lt;/del&amp;gt; &#039;&#039;&amp;lt;-- replaced by using sftp&#039;&#039;&lt;br /&gt;
* [http://www.intermapper.com/download-intermapper INTERMAPPER]&lt;br /&gt;
* [[MPD]]&lt;br /&gt;
* [[TFTP|TFTPD]]&lt;br /&gt;
* NTPD&lt;br /&gt;
* [[Syslog|SYSLOGD]]&lt;br /&gt;
* [[SNMP|SNMPD]]&lt;br /&gt;
* [[IPLIST]]&lt;br /&gt;
&lt;br /&gt;
How to clean up(purge) uninstalled packages&lt;br /&gt;
 dpkg --purge $(dpkg --list | grep ^rc | awk &#039;{ print $2; }&#039;)&lt;br /&gt;
&lt;br /&gt;
Find best apt repos&lt;br /&gt;
 pip install apt-select&lt;br /&gt;
&lt;br /&gt;
 apt-select -t 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Pin Kernel&amp;lt;/h4&amp;gt;&lt;br /&gt;
This is allow apt-get upgrades without upgrading kernel versions&lt;br /&gt;
*/etc/apt/preferences&lt;br /&gt;
 Package: linux-generic linux-headers-generic linux-image-generic linux-restricted-modules-generic&lt;br /&gt;
 Pin: version 3.2.0.29.31&lt;br /&gt;
 Pin-Priority: 1001&lt;br /&gt;
* apt-cache policy linux-generic&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;How to set default kernel using GRUB2&amp;lt;/h4&amp;gt;&lt;br /&gt;
 #grep menuentry /boot/grub/grub.cfg &lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-12-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-12-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-11-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-11-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-8-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-8-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
&lt;br /&gt;
* If the following command outputs a submenu, then you have to prepend &amp;quot;Previous Linux versions&amp;gt;&amp;quot; ahead of your kernel name&lt;br /&gt;
 #grep submenu /boot/grub/grub.cfg&lt;br /&gt;
 submenu &amp;quot;Previous Linux versions&amp;quot; {&lt;br /&gt;
&lt;br /&gt;
*/etc/default/grub&lt;br /&gt;
 GRUB_DEFAULT=&amp;quot;&#039;&#039;&#039;Previous Linux versions&amp;gt;&#039;&#039;&#039;Ubuntu, with Linux 2.6.38-11-generic-pae&amp;quot;&lt;br /&gt;
if you don&#039;t set the Previous Linux versions, it doesn&#039;t go through the menu to find it..&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Network Performance fix&amp;lt;/h4&amp;gt;&lt;br /&gt;
 # echo &#039;net.core.wmem_max=12582912&#039; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 # echo &#039;net.core.rmem_max=12582912&#039; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
* PathTest download links&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Windows_32-bit.zip&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Linux_64-bit.zip&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Linux_32-bit.zip&lt;br /&gt;
* Thanks to http://www.cyberciti.biz/faq/linux-tcp-tuning/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Speed testing &amp;lt;/h4&amp;gt;&lt;br /&gt;
 wget https://www.dropbox.com/s/afsvduxtyi5emth/bench.sh -O - -o /dev/null|bash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Network Performance Test&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
http://netalyzr.icsi.berkeley.edu/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Bash aliases&amp;lt;/h4&amp;gt;&lt;br /&gt;
 alias apt-get=&#039;apt-get -o Acquire::ForceIPv4=true&#039;&lt;br /&gt;
 alias dmesg=&#039;dmesg -T&#039;&lt;br /&gt;
 alias wget=&#039;wget -4&#039;&lt;br /&gt;
 alias curl=&#039;curl -4&#039;&lt;br /&gt;
 alias sudo=&#039;sudo env PATH=$PATH XBMC_HOME=&amp;quot;/opt/plexhometheater/share/XBMC&amp;quot; &#039;&lt;br /&gt;
&lt;br /&gt;
== Artificial Intelligence A.I.==&lt;br /&gt;
Ubuntu 24.04 LTS headless server&amp;lt;br&amp;gt;&lt;br /&gt;
NVIDIA Tesla P4&amp;lt;br&amp;gt;&lt;br /&gt;
Issues with an Ubuntu 24.04 server VM &amp;quot;downtraining&amp;quot; PCI-E 3.0 Gen3 to PCI-E 3.0 Gen1 after the driver loads.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ii  nvidia-compute-utils-580-server       580.126.09-0ubuntu0.24.04.1             amd64        NVIDIA compute utilities&lt;br /&gt;
ii  nvidia-dkms-580-server                580.126.09-0ubuntu0.24.04.1             amd64        NVIDIA DKMS package&lt;br /&gt;
ii  nvidia-driver-580-server              580.126.09-0ubuntu0.24.04.1             amd64        NVIDIA Server Driver metapackage&lt;br /&gt;
ii  nvidia-firmware-580-server-580.126.09 580.126.09-0ubuntu0.24.04.1             amd64        Firmware files used by the kernel module&lt;br /&gt;
ii  nvidia-kernel-common-580-server       580.126.09-0ubuntu0.24.04.1             amd64        Shared files used with the kernel module&lt;br /&gt;
ii  nvidia-kernel-source-580-server       580.126.09-0ubuntu0.24.04.1             amd64        NVIDIA kernel source package&lt;br /&gt;
ii  nvidia-utils-580-server               580.126.09-0ubuntu0.24.04.1             amd64        NVIDIA Server Driver support binaries&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;options nvidia NVreg_EnablePCIeGen3=3&amp;quot; &amp;gt; /etc/modprobe.d/nvidia-pci-fix.conf&lt;br /&gt;
echo &amp;quot;blacklist nouveau&amp;quot; &amp;gt; /etc/modprobe.d/blacklist-nouveau.conf&lt;br /&gt;
update-initramfs -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Status Script&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /usr/local/sbin/nvidia-status.sh &lt;br /&gt;
#!/bin/bash&lt;br /&gt;
nvidia-smi -q | grep -A4 &amp;quot;PCIe Gener&amp;quot;&lt;br /&gt;
lspci -vvv -s $(lspci | grep -i &#039;NVIDIA&#039; | awk &#039;{print $1}&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nvidia-status.sh | grep -A5 LnkCap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Ubuntu_Server_Setup&amp;diff=2739</id>
		<title>Ubuntu Server Setup</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Ubuntu_Server_Setup&amp;diff=2739"/>
		<updated>2026-01-23T05:24:40Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: /* Artificial Intelligence A.I. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page defines all the services that I run on my home server. This is mainly a recovery guide in the case that it [http://www.urbandictionary.com/define.php?term=poop poops] itself.&lt;br /&gt;
&lt;br /&gt;
* APACHE&lt;br /&gt;
* HDDTEMP&lt;br /&gt;
* DNSMASQ&lt;br /&gt;
* SQUID&lt;br /&gt;
* MBMON&lt;br /&gt;
* [[Time_Machine|IETD]]&lt;br /&gt;
* [[Samba|SMBD]]&lt;br /&gt;
* [[Mediatomb|MEDIATOMB]]&lt;br /&gt;
* [[PulseAudio|PULSEAUDIO]]&lt;br /&gt;
* [[Mt-daapd|MT-DAAPD]] &#039;&#039;&amp;lt;-- iTunes 10 incompatible&#039;&#039;&lt;br /&gt;
* &amp;lt;del&amp;gt;PROFTPD&amp;lt;/del&amp;gt; &#039;&#039;&amp;lt;-- replaced by using sftp&#039;&#039;&lt;br /&gt;
* [http://www.intermapper.com/download-intermapper INTERMAPPER]&lt;br /&gt;
* [[MPD]]&lt;br /&gt;
* [[TFTP|TFTPD]]&lt;br /&gt;
* NTPD&lt;br /&gt;
* [[Syslog|SYSLOGD]]&lt;br /&gt;
* [[SNMP|SNMPD]]&lt;br /&gt;
* [[IPLIST]]&lt;br /&gt;
&lt;br /&gt;
How to clean up(purge) uninstalled packages&lt;br /&gt;
 dpkg --purge $(dpkg --list | grep ^rc | awk &#039;{ print $2; }&#039;)&lt;br /&gt;
&lt;br /&gt;
Find best apt repos&lt;br /&gt;
 pip install apt-select&lt;br /&gt;
&lt;br /&gt;
 apt-select -t 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Pin Kernel&amp;lt;/h4&amp;gt;&lt;br /&gt;
This is allow apt-get upgrades without upgrading kernel versions&lt;br /&gt;
*/etc/apt/preferences&lt;br /&gt;
 Package: linux-generic linux-headers-generic linux-image-generic linux-restricted-modules-generic&lt;br /&gt;
 Pin: version 3.2.0.29.31&lt;br /&gt;
 Pin-Priority: 1001&lt;br /&gt;
* apt-cache policy linux-generic&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;How to set default kernel using GRUB2&amp;lt;/h4&amp;gt;&lt;br /&gt;
 #grep menuentry /boot/grub/grub.cfg &lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-12-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-12-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-11-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-11-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-8-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-8-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
&lt;br /&gt;
* If the following command outputs a submenu, then you have to prepend &amp;quot;Previous Linux versions&amp;gt;&amp;quot; ahead of your kernel name&lt;br /&gt;
 #grep submenu /boot/grub/grub.cfg&lt;br /&gt;
 submenu &amp;quot;Previous Linux versions&amp;quot; {&lt;br /&gt;
&lt;br /&gt;
*/etc/default/grub&lt;br /&gt;
 GRUB_DEFAULT=&amp;quot;&#039;&#039;&#039;Previous Linux versions&amp;gt;&#039;&#039;&#039;Ubuntu, with Linux 2.6.38-11-generic-pae&amp;quot;&lt;br /&gt;
if you don&#039;t set the Previous Linux versions, it doesn&#039;t go through the menu to find it..&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Network Performance fix&amp;lt;/h4&amp;gt;&lt;br /&gt;
 # echo &#039;net.core.wmem_max=12582912&#039; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 # echo &#039;net.core.rmem_max=12582912&#039; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
* PathTest download links&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Windows_32-bit.zip&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Linux_64-bit.zip&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Linux_32-bit.zip&lt;br /&gt;
* Thanks to http://www.cyberciti.biz/faq/linux-tcp-tuning/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Speed testing &amp;lt;/h4&amp;gt;&lt;br /&gt;
 wget https://www.dropbox.com/s/afsvduxtyi5emth/bench.sh -O - -o /dev/null|bash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Network Performance Test&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
http://netalyzr.icsi.berkeley.edu/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Bash aliases&amp;lt;/h4&amp;gt;&lt;br /&gt;
 alias apt-get=&#039;apt-get -o Acquire::ForceIPv4=true&#039;&lt;br /&gt;
 alias dmesg=&#039;dmesg -T&#039;&lt;br /&gt;
 alias wget=&#039;wget -4&#039;&lt;br /&gt;
 alias curl=&#039;curl -4&#039;&lt;br /&gt;
 alias sudo=&#039;sudo env PATH=$PATH XBMC_HOME=&amp;quot;/opt/plexhometheater/share/XBMC&amp;quot; &#039;&lt;br /&gt;
&lt;br /&gt;
== Artificial Intelligence A.I.==&lt;br /&gt;
Ubuntu 24.04 LTS headless server&amp;lt;br&amp;gt;&lt;br /&gt;
NVIDIA Tesla P4&amp;lt;br&amp;gt;&lt;br /&gt;
Issues with an Ubuntu 24.04 server VM &amp;quot;downtraining&amp;quot; PCI-E 3.0 Gen3 to PCI-E 3.0 Gen1 after the driver loads.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ii  nvidia-compute-utils-580-server       580.126.09-0ubuntu0.24.04.1             amd64        NVIDIA compute utilities&lt;br /&gt;
ii  nvidia-dkms-580-server                580.126.09-0ubuntu0.24.04.1             amd64        NVIDIA DKMS package&lt;br /&gt;
ii  nvidia-driver-580-server              580.126.09-0ubuntu0.24.04.1             amd64        NVIDIA Server Driver metapackage&lt;br /&gt;
ii  nvidia-firmware-580-server-580.126.09 580.126.09-0ubuntu0.24.04.1             amd64        Firmware files used by the kernel module&lt;br /&gt;
ii  nvidia-kernel-common-580-server       580.126.09-0ubuntu0.24.04.1             amd64        Shared files used with the kernel module&lt;br /&gt;
ii  nvidia-kernel-source-580-server       580.126.09-0ubuntu0.24.04.1             amd64        NVIDIA kernel source package&lt;br /&gt;
ii  nvidia-utils-580-server               580.126.09-0ubuntu0.24.04.1             amd64        NVIDIA Server Driver support binaries&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;options nvidia NVreg_EnablePCIeGen3=3&amp;quot; &amp;gt; /etc/modprobe.d/nvidia-pci-fix.conf&lt;br /&gt;
echo &amp;quot;blacklist nouveau&amp;quot; &amp;gt; /etc/modprobe.d/blacklist-nouveau.conf&lt;br /&gt;
update-initramfs -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Status Script&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /usr/local/sbin/nvidia-status.sh &lt;br /&gt;
#!/bin/bash&lt;br /&gt;
nvidia-smi -q | grep -A4 &amp;quot;PCIe Gener&amp;quot;&lt;br /&gt;
lspci -vvv -s $(lspci | grep -i &#039;NVIDIA&#039; | awk &#039;{print $1}&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Ubuntu_Server_Setup&amp;diff=2738</id>
		<title>Ubuntu Server Setup</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Ubuntu_Server_Setup&amp;diff=2738"/>
		<updated>2026-01-23T05:00:14Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: /* Artificial Intelligence A.I. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page defines all the services that I run on my home server. This is mainly a recovery guide in the case that it [http://www.urbandictionary.com/define.php?term=poop poops] itself.&lt;br /&gt;
&lt;br /&gt;
* APACHE&lt;br /&gt;
* HDDTEMP&lt;br /&gt;
* DNSMASQ&lt;br /&gt;
* SQUID&lt;br /&gt;
* MBMON&lt;br /&gt;
* [[Time_Machine|IETD]]&lt;br /&gt;
* [[Samba|SMBD]]&lt;br /&gt;
* [[Mediatomb|MEDIATOMB]]&lt;br /&gt;
* [[PulseAudio|PULSEAUDIO]]&lt;br /&gt;
* [[Mt-daapd|MT-DAAPD]] &#039;&#039;&amp;lt;-- iTunes 10 incompatible&#039;&#039;&lt;br /&gt;
* &amp;lt;del&amp;gt;PROFTPD&amp;lt;/del&amp;gt; &#039;&#039;&amp;lt;-- replaced by using sftp&#039;&#039;&lt;br /&gt;
* [http://www.intermapper.com/download-intermapper INTERMAPPER]&lt;br /&gt;
* [[MPD]]&lt;br /&gt;
* [[TFTP|TFTPD]]&lt;br /&gt;
* NTPD&lt;br /&gt;
* [[Syslog|SYSLOGD]]&lt;br /&gt;
* [[SNMP|SNMPD]]&lt;br /&gt;
* [[IPLIST]]&lt;br /&gt;
&lt;br /&gt;
How to clean up(purge) uninstalled packages&lt;br /&gt;
 dpkg --purge $(dpkg --list | grep ^rc | awk &#039;{ print $2; }&#039;)&lt;br /&gt;
&lt;br /&gt;
Find best apt repos&lt;br /&gt;
 pip install apt-select&lt;br /&gt;
&lt;br /&gt;
 apt-select -t 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Pin Kernel&amp;lt;/h4&amp;gt;&lt;br /&gt;
This is allow apt-get upgrades without upgrading kernel versions&lt;br /&gt;
*/etc/apt/preferences&lt;br /&gt;
 Package: linux-generic linux-headers-generic linux-image-generic linux-restricted-modules-generic&lt;br /&gt;
 Pin: version 3.2.0.29.31&lt;br /&gt;
 Pin-Priority: 1001&lt;br /&gt;
* apt-cache policy linux-generic&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;How to set default kernel using GRUB2&amp;lt;/h4&amp;gt;&lt;br /&gt;
 #grep menuentry /boot/grub/grub.cfg &lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-12-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-12-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-11-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-11-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-8-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-8-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
&lt;br /&gt;
* If the following command outputs a submenu, then you have to prepend &amp;quot;Previous Linux versions&amp;gt;&amp;quot; ahead of your kernel name&lt;br /&gt;
 #grep submenu /boot/grub/grub.cfg&lt;br /&gt;
 submenu &amp;quot;Previous Linux versions&amp;quot; {&lt;br /&gt;
&lt;br /&gt;
*/etc/default/grub&lt;br /&gt;
 GRUB_DEFAULT=&amp;quot;&#039;&#039;&#039;Previous Linux versions&amp;gt;&#039;&#039;&#039;Ubuntu, with Linux 2.6.38-11-generic-pae&amp;quot;&lt;br /&gt;
if you don&#039;t set the Previous Linux versions, it doesn&#039;t go through the menu to find it..&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Network Performance fix&amp;lt;/h4&amp;gt;&lt;br /&gt;
 # echo &#039;net.core.wmem_max=12582912&#039; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 # echo &#039;net.core.rmem_max=12582912&#039; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
* PathTest download links&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Windows_32-bit.zip&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Linux_64-bit.zip&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Linux_32-bit.zip&lt;br /&gt;
* Thanks to http://www.cyberciti.biz/faq/linux-tcp-tuning/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Speed testing &amp;lt;/h4&amp;gt;&lt;br /&gt;
 wget https://www.dropbox.com/s/afsvduxtyi5emth/bench.sh -O - -o /dev/null|bash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Network Performance Test&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
http://netalyzr.icsi.berkeley.edu/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Bash aliases&amp;lt;/h4&amp;gt;&lt;br /&gt;
 alias apt-get=&#039;apt-get -o Acquire::ForceIPv4=true&#039;&lt;br /&gt;
 alias dmesg=&#039;dmesg -T&#039;&lt;br /&gt;
 alias wget=&#039;wget -4&#039;&lt;br /&gt;
 alias curl=&#039;curl -4&#039;&lt;br /&gt;
 alias sudo=&#039;sudo env PATH=$PATH XBMC_HOME=&amp;quot;/opt/plexhometheater/share/XBMC&amp;quot; &#039;&lt;br /&gt;
&lt;br /&gt;
== Artificial Intelligence A.I.==&lt;br /&gt;
Ubuntu 24.04 LTS headless server&amp;lt;br&amp;gt;&lt;br /&gt;
NVIDIA Tesla P4&amp;lt;br&amp;gt;&lt;br /&gt;
Issues with an Ubuntu 24.04 server VM &amp;quot;downtraining&amp;quot; PCI-E 3.0 Gen3 to PCI-E 3.0 Gen1 after the driver loads.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ii  nvidia-compute-utils-580-server       580.126.09-0ubuntu0.24.04.1             amd64        NVIDIA compute utilities&lt;br /&gt;
ii  nvidia-dkms-580-server                580.126.09-0ubuntu0.24.04.1             amd64        NVIDIA DKMS package&lt;br /&gt;
ii  nvidia-driver-580-server              580.126.09-0ubuntu0.24.04.1             amd64        NVIDIA Server Driver metapackage&lt;br /&gt;
ii  nvidia-firmware-580-server-580.126.09 580.126.09-0ubuntu0.24.04.1             amd64        Firmware files used by the kernel module&lt;br /&gt;
ii  nvidia-kernel-common-580-server       580.126.09-0ubuntu0.24.04.1             amd64        Shared files used with the kernel module&lt;br /&gt;
ii  nvidia-kernel-source-580-server       580.126.09-0ubuntu0.24.04.1             amd64        NVIDIA kernel source package&lt;br /&gt;
ii  nvidia-utils-580-server               580.126.09-0ubuntu0.24.04.1             amd64        NVIDIA Server Driver support binaries&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat blacklist-nouveau.conf &lt;br /&gt;
blacklist nouveau&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/modprobe.d/nvidia-pci-fix.conf&lt;br /&gt;
options nvidia NVreg_EnablePCIeGen3=3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
update-initramfs -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Status Script&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /usr/local/sbin/nvidia-status.sh &lt;br /&gt;
#!/bin/bash&lt;br /&gt;
nvidia-smi -q | grep -A4 &amp;quot;PCIe Gener&amp;quot;&lt;br /&gt;
lspci -vvv -s $(lspci | grep -i &#039;NVIDIA&#039; | awk &#039;{print $1}&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Ubuntu_Server_Setup&amp;diff=2737</id>
		<title>Ubuntu Server Setup</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Ubuntu_Server_Setup&amp;diff=2737"/>
		<updated>2026-01-23T04:51:27Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: /* Artificial Intelligence A.I. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page defines all the services that I run on my home server. This is mainly a recovery guide in the case that it [http://www.urbandictionary.com/define.php?term=poop poops] itself.&lt;br /&gt;
&lt;br /&gt;
* APACHE&lt;br /&gt;
* HDDTEMP&lt;br /&gt;
* DNSMASQ&lt;br /&gt;
* SQUID&lt;br /&gt;
* MBMON&lt;br /&gt;
* [[Time_Machine|IETD]]&lt;br /&gt;
* [[Samba|SMBD]]&lt;br /&gt;
* [[Mediatomb|MEDIATOMB]]&lt;br /&gt;
* [[PulseAudio|PULSEAUDIO]]&lt;br /&gt;
* [[Mt-daapd|MT-DAAPD]] &#039;&#039;&amp;lt;-- iTunes 10 incompatible&#039;&#039;&lt;br /&gt;
* &amp;lt;del&amp;gt;PROFTPD&amp;lt;/del&amp;gt; &#039;&#039;&amp;lt;-- replaced by using sftp&#039;&#039;&lt;br /&gt;
* [http://www.intermapper.com/download-intermapper INTERMAPPER]&lt;br /&gt;
* [[MPD]]&lt;br /&gt;
* [[TFTP|TFTPD]]&lt;br /&gt;
* NTPD&lt;br /&gt;
* [[Syslog|SYSLOGD]]&lt;br /&gt;
* [[SNMP|SNMPD]]&lt;br /&gt;
* [[IPLIST]]&lt;br /&gt;
&lt;br /&gt;
How to clean up(purge) uninstalled packages&lt;br /&gt;
 dpkg --purge $(dpkg --list | grep ^rc | awk &#039;{ print $2; }&#039;)&lt;br /&gt;
&lt;br /&gt;
Find best apt repos&lt;br /&gt;
 pip install apt-select&lt;br /&gt;
&lt;br /&gt;
 apt-select -t 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Pin Kernel&amp;lt;/h4&amp;gt;&lt;br /&gt;
This is allow apt-get upgrades without upgrading kernel versions&lt;br /&gt;
*/etc/apt/preferences&lt;br /&gt;
 Package: linux-generic linux-headers-generic linux-image-generic linux-restricted-modules-generic&lt;br /&gt;
 Pin: version 3.2.0.29.31&lt;br /&gt;
 Pin-Priority: 1001&lt;br /&gt;
* apt-cache policy linux-generic&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;How to set default kernel using GRUB2&amp;lt;/h4&amp;gt;&lt;br /&gt;
 #grep menuentry /boot/grub/grub.cfg &lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-12-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-12-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-11-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-11-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-8-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-8-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
&lt;br /&gt;
* If the following command outputs a submenu, then you have to prepend &amp;quot;Previous Linux versions&amp;gt;&amp;quot; ahead of your kernel name&lt;br /&gt;
 #grep submenu /boot/grub/grub.cfg&lt;br /&gt;
 submenu &amp;quot;Previous Linux versions&amp;quot; {&lt;br /&gt;
&lt;br /&gt;
*/etc/default/grub&lt;br /&gt;
 GRUB_DEFAULT=&amp;quot;&#039;&#039;&#039;Previous Linux versions&amp;gt;&#039;&#039;&#039;Ubuntu, with Linux 2.6.38-11-generic-pae&amp;quot;&lt;br /&gt;
if you don&#039;t set the Previous Linux versions, it doesn&#039;t go through the menu to find it..&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Network Performance fix&amp;lt;/h4&amp;gt;&lt;br /&gt;
 # echo &#039;net.core.wmem_max=12582912&#039; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 # echo &#039;net.core.rmem_max=12582912&#039; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
* PathTest download links&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Windows_32-bit.zip&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Linux_64-bit.zip&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Linux_32-bit.zip&lt;br /&gt;
* Thanks to http://www.cyberciti.biz/faq/linux-tcp-tuning/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Speed testing &amp;lt;/h4&amp;gt;&lt;br /&gt;
 wget https://www.dropbox.com/s/afsvduxtyi5emth/bench.sh -O - -o /dev/null|bash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Network Performance Test&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
http://netalyzr.icsi.berkeley.edu/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Bash aliases&amp;lt;/h4&amp;gt;&lt;br /&gt;
 alias apt-get=&#039;apt-get -o Acquire::ForceIPv4=true&#039;&lt;br /&gt;
 alias dmesg=&#039;dmesg -T&#039;&lt;br /&gt;
 alias wget=&#039;wget -4&#039;&lt;br /&gt;
 alias curl=&#039;curl -4&#039;&lt;br /&gt;
 alias sudo=&#039;sudo env PATH=$PATH XBMC_HOME=&amp;quot;/opt/plexhometheater/share/XBMC&amp;quot; &#039;&lt;br /&gt;
&lt;br /&gt;
== Artificial Intelligence A.I.==&lt;br /&gt;
Ubuntu 24.04 LTS headless server&amp;lt;br&amp;gt;&lt;br /&gt;
NVIDIA Tesla P4&amp;lt;br&amp;gt;&lt;br /&gt;
Issues with an Ubuntu 24.04 server VM &amp;quot;downtraining&amp;quot; PCI-E 3.0 Gen3 to PCI-E 3.0 Gen1 after the driver loads.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ii  nvidia-compute-utils-580-server       580.126.09-0ubuntu0.24.04.1             amd64        NVIDIA compute utilities&lt;br /&gt;
ii  nvidia-dkms-580-server                580.126.09-0ubuntu0.24.04.1             amd64        NVIDIA DKMS package&lt;br /&gt;
ii  nvidia-driver-580-server              580.126.09-0ubuntu0.24.04.1             amd64        NVIDIA Server Driver metapackage&lt;br /&gt;
ii  nvidia-firmware-580-server-580.126.09 580.126.09-0ubuntu0.24.04.1             amd64        Firmware files used by the kernel module&lt;br /&gt;
ii  nvidia-kernel-common-580-server       580.126.09-0ubuntu0.24.04.1             amd64        Shared files used with the kernel module&lt;br /&gt;
ii  nvidia-kernel-source-580-server       580.126.09-0ubuntu0.24.04.1             amd64        NVIDIA kernel source package&lt;br /&gt;
ii  nvidia-utils-580-server               580.126.09-0ubuntu0.24.04.1             amd64        NVIDIA Server Driver support binaries&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/modprobe.d/nvidia-pci-fix.conf&lt;br /&gt;
options nvidia NVreg_EnablePCIeGen3=3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Status Script&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /usr/local/sbin/nvidia-status.sh &lt;br /&gt;
#!/bin/bash&lt;br /&gt;
nvidia-smi -q | grep -A4 &amp;quot;PCIe Gener&amp;quot;&lt;br /&gt;
lspci -vvv -s $(lspci | grep -i &#039;NVIDIA&#039; | awk &#039;{print $1}&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Ubuntu_Server_Setup&amp;diff=2736</id>
		<title>Ubuntu Server Setup</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Ubuntu_Server_Setup&amp;diff=2736"/>
		<updated>2026-01-23T04:49:30Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: /* Artificial Intelligence A.I. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page defines all the services that I run on my home server. This is mainly a recovery guide in the case that it [http://www.urbandictionary.com/define.php?term=poop poops] itself.&lt;br /&gt;
&lt;br /&gt;
* APACHE&lt;br /&gt;
* HDDTEMP&lt;br /&gt;
* DNSMASQ&lt;br /&gt;
* SQUID&lt;br /&gt;
* MBMON&lt;br /&gt;
* [[Time_Machine|IETD]]&lt;br /&gt;
* [[Samba|SMBD]]&lt;br /&gt;
* [[Mediatomb|MEDIATOMB]]&lt;br /&gt;
* [[PulseAudio|PULSEAUDIO]]&lt;br /&gt;
* [[Mt-daapd|MT-DAAPD]] &#039;&#039;&amp;lt;-- iTunes 10 incompatible&#039;&#039;&lt;br /&gt;
* &amp;lt;del&amp;gt;PROFTPD&amp;lt;/del&amp;gt; &#039;&#039;&amp;lt;-- replaced by using sftp&#039;&#039;&lt;br /&gt;
* [http://www.intermapper.com/download-intermapper INTERMAPPER]&lt;br /&gt;
* [[MPD]]&lt;br /&gt;
* [[TFTP|TFTPD]]&lt;br /&gt;
* NTPD&lt;br /&gt;
* [[Syslog|SYSLOGD]]&lt;br /&gt;
* [[SNMP|SNMPD]]&lt;br /&gt;
* [[IPLIST]]&lt;br /&gt;
&lt;br /&gt;
How to clean up(purge) uninstalled packages&lt;br /&gt;
 dpkg --purge $(dpkg --list | grep ^rc | awk &#039;{ print $2; }&#039;)&lt;br /&gt;
&lt;br /&gt;
Find best apt repos&lt;br /&gt;
 pip install apt-select&lt;br /&gt;
&lt;br /&gt;
 apt-select -t 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Pin Kernel&amp;lt;/h4&amp;gt;&lt;br /&gt;
This is allow apt-get upgrades without upgrading kernel versions&lt;br /&gt;
*/etc/apt/preferences&lt;br /&gt;
 Package: linux-generic linux-headers-generic linux-image-generic linux-restricted-modules-generic&lt;br /&gt;
 Pin: version 3.2.0.29.31&lt;br /&gt;
 Pin-Priority: 1001&lt;br /&gt;
* apt-cache policy linux-generic&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;How to set default kernel using GRUB2&amp;lt;/h4&amp;gt;&lt;br /&gt;
 #grep menuentry /boot/grub/grub.cfg &lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-12-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-12-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-11-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-11-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-8-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-8-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
&lt;br /&gt;
* If the following command outputs a submenu, then you have to prepend &amp;quot;Previous Linux versions&amp;gt;&amp;quot; ahead of your kernel name&lt;br /&gt;
 #grep submenu /boot/grub/grub.cfg&lt;br /&gt;
 submenu &amp;quot;Previous Linux versions&amp;quot; {&lt;br /&gt;
&lt;br /&gt;
*/etc/default/grub&lt;br /&gt;
 GRUB_DEFAULT=&amp;quot;&#039;&#039;&#039;Previous Linux versions&amp;gt;&#039;&#039;&#039;Ubuntu, with Linux 2.6.38-11-generic-pae&amp;quot;&lt;br /&gt;
if you don&#039;t set the Previous Linux versions, it doesn&#039;t go through the menu to find it..&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Network Performance fix&amp;lt;/h4&amp;gt;&lt;br /&gt;
 # echo &#039;net.core.wmem_max=12582912&#039; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 # echo &#039;net.core.rmem_max=12582912&#039; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
* PathTest download links&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Windows_32-bit.zip&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Linux_64-bit.zip&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Linux_32-bit.zip&lt;br /&gt;
* Thanks to http://www.cyberciti.biz/faq/linux-tcp-tuning/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Speed testing &amp;lt;/h4&amp;gt;&lt;br /&gt;
 wget https://www.dropbox.com/s/afsvduxtyi5emth/bench.sh -O - -o /dev/null|bash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Network Performance Test&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
http://netalyzr.icsi.berkeley.edu/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Bash aliases&amp;lt;/h4&amp;gt;&lt;br /&gt;
 alias apt-get=&#039;apt-get -o Acquire::ForceIPv4=true&#039;&lt;br /&gt;
 alias dmesg=&#039;dmesg -T&#039;&lt;br /&gt;
 alias wget=&#039;wget -4&#039;&lt;br /&gt;
 alias curl=&#039;curl -4&#039;&lt;br /&gt;
 alias sudo=&#039;sudo env PATH=$PATH XBMC_HOME=&amp;quot;/opt/plexhometheater/share/XBMC&amp;quot; &#039;&lt;br /&gt;
&lt;br /&gt;
== Artificial Intelligence A.I.==&lt;br /&gt;
Ubuntu 24.04 LTS headless server&amp;lt;br&amp;gt;&lt;br /&gt;
NVIDIA Tesla P4&amp;lt;br&amp;gt;&lt;br /&gt;
Issues with an Ubuntu 24.04 server VM &amp;quot;downtraining&amp;quot; PCI-E 3.0 Gen3 to PCI-E 3.0 Gen1 after the driver loads.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/modprobe.d/nvidia-pci-fix.conf&lt;br /&gt;
options nvidia NVreg_EnablePCIeGen3=3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Status Script&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /usr/local/sbin/nvidia-status.sh &lt;br /&gt;
#!/bin/bash&lt;br /&gt;
nvidia-smi -q | grep -A4 &amp;quot;PCIe Gener&amp;quot;&lt;br /&gt;
lspci -vvv -s $(lspci | grep -i &#039;NVIDIA&#039; | awk &#039;{print $1}&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Ubuntu_Server_Setup&amp;diff=2735</id>
		<title>Ubuntu Server Setup</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Ubuntu_Server_Setup&amp;diff=2735"/>
		<updated>2026-01-23T04:47:31Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page defines all the services that I run on my home server. This is mainly a recovery guide in the case that it [http://www.urbandictionary.com/define.php?term=poop poops] itself.&lt;br /&gt;
&lt;br /&gt;
* APACHE&lt;br /&gt;
* HDDTEMP&lt;br /&gt;
* DNSMASQ&lt;br /&gt;
* SQUID&lt;br /&gt;
* MBMON&lt;br /&gt;
* [[Time_Machine|IETD]]&lt;br /&gt;
* [[Samba|SMBD]]&lt;br /&gt;
* [[Mediatomb|MEDIATOMB]]&lt;br /&gt;
* [[PulseAudio|PULSEAUDIO]]&lt;br /&gt;
* [[Mt-daapd|MT-DAAPD]] &#039;&#039;&amp;lt;-- iTunes 10 incompatible&#039;&#039;&lt;br /&gt;
* &amp;lt;del&amp;gt;PROFTPD&amp;lt;/del&amp;gt; &#039;&#039;&amp;lt;-- replaced by using sftp&#039;&#039;&lt;br /&gt;
* [http://www.intermapper.com/download-intermapper INTERMAPPER]&lt;br /&gt;
* [[MPD]]&lt;br /&gt;
* [[TFTP|TFTPD]]&lt;br /&gt;
* NTPD&lt;br /&gt;
* [[Syslog|SYSLOGD]]&lt;br /&gt;
* [[SNMP|SNMPD]]&lt;br /&gt;
* [[IPLIST]]&lt;br /&gt;
&lt;br /&gt;
How to clean up(purge) uninstalled packages&lt;br /&gt;
 dpkg --purge $(dpkg --list | grep ^rc | awk &#039;{ print $2; }&#039;)&lt;br /&gt;
&lt;br /&gt;
Find best apt repos&lt;br /&gt;
 pip install apt-select&lt;br /&gt;
&lt;br /&gt;
 apt-select -t 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Pin Kernel&amp;lt;/h4&amp;gt;&lt;br /&gt;
This is allow apt-get upgrades without upgrading kernel versions&lt;br /&gt;
*/etc/apt/preferences&lt;br /&gt;
 Package: linux-generic linux-headers-generic linux-image-generic linux-restricted-modules-generic&lt;br /&gt;
 Pin: version 3.2.0.29.31&lt;br /&gt;
 Pin-Priority: 1001&lt;br /&gt;
* apt-cache policy linux-generic&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;How to set default kernel using GRUB2&amp;lt;/h4&amp;gt;&lt;br /&gt;
 #grep menuentry /boot/grub/grub.cfg &lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-12-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-12-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-11-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-11-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-8-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-8-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
&lt;br /&gt;
* If the following command outputs a submenu, then you have to prepend &amp;quot;Previous Linux versions&amp;gt;&amp;quot; ahead of your kernel name&lt;br /&gt;
 #grep submenu /boot/grub/grub.cfg&lt;br /&gt;
 submenu &amp;quot;Previous Linux versions&amp;quot; {&lt;br /&gt;
&lt;br /&gt;
*/etc/default/grub&lt;br /&gt;
 GRUB_DEFAULT=&amp;quot;&#039;&#039;&#039;Previous Linux versions&amp;gt;&#039;&#039;&#039;Ubuntu, with Linux 2.6.38-11-generic-pae&amp;quot;&lt;br /&gt;
if you don&#039;t set the Previous Linux versions, it doesn&#039;t go through the menu to find it..&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Network Performance fix&amp;lt;/h4&amp;gt;&lt;br /&gt;
 # echo &#039;net.core.wmem_max=12582912&#039; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 # echo &#039;net.core.rmem_max=12582912&#039; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
* PathTest download links&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Windows_32-bit.zip&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Linux_64-bit.zip&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Linux_32-bit.zip&lt;br /&gt;
* Thanks to http://www.cyberciti.biz/faq/linux-tcp-tuning/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Speed testing &amp;lt;/h4&amp;gt;&lt;br /&gt;
 wget https://www.dropbox.com/s/afsvduxtyi5emth/bench.sh -O - -o /dev/null|bash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Network Performance Test&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
http://netalyzr.icsi.berkeley.edu/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Bash aliases&amp;lt;/h4&amp;gt;&lt;br /&gt;
 alias apt-get=&#039;apt-get -o Acquire::ForceIPv4=true&#039;&lt;br /&gt;
 alias dmesg=&#039;dmesg -T&#039;&lt;br /&gt;
 alias wget=&#039;wget -4&#039;&lt;br /&gt;
 alias curl=&#039;curl -4&#039;&lt;br /&gt;
 alias sudo=&#039;sudo env PATH=$PATH XBMC_HOME=&amp;quot;/opt/plexhometheater/share/XBMC&amp;quot; &#039;&lt;br /&gt;
&lt;br /&gt;
== Artificial Intelligence A.I.==&lt;br /&gt;
Ubuntu 24.04 LTS headless server&amp;lt;br&amp;gt;&lt;br /&gt;
NVIDIA Tesla P4&amp;lt;br&amp;gt;&lt;br /&gt;
Issues with an Ubuntu 24.04 server VM &amp;quot;downtraining&amp;quot; PCI-E 3.0 Gen3 to PCI-E 3.0 Gen1 after the driver loads.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/modprobe.d/nvidia-pci-fix.conf&lt;br /&gt;
options nvidia NVreg_EnablePCIeGen3=3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Voron&amp;diff=2734</id>
		<title>Voron</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Voron&amp;diff=2734"/>
		<updated>2025-12-18T21:05:05Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is my info for my Voron v2.4 build&amp;lt;br&amp;gt;&lt;br /&gt;
* Generic Bigtreetech github: https://github.com/bigtreetech/&lt;br /&gt;
This is what I am using for hardware:&amp;lt;br&amp;gt;&lt;br /&gt;
* BTT SKR 1.4 Turbo (LPC1769) [https://www.hurlster.com/downloads/BTT%20SKR%20V1.4%20Instruction%20Manual.pdf SKR 1.4 Turbo Manual]&lt;br /&gt;
* BTT EXT MOT [https://www.hurlster.com/downloads/BTT%20EXP-MOT%20V1.0User%20Guide.pdf EXT-MOT Manual]&lt;br /&gt;
* 8MM Funssor Hot Bed Cast Alumnium MIC-6 Plate&lt;br /&gt;
 110/220V Silicone AC heater has a built-in NTC 100K thermistor.&lt;br /&gt;
* BTT TFT35 V2.0 [https://www.hurlster.com/downloads/BTT%20TFT35%20V2.0-manual-20200108.pdf TFT35 V2.0 Manual]&lt;br /&gt;
* BTT SB2209 USB (RP2040) [https://www.hurlster.com/downloads/BIGTREETECH%20EBB%20SB2209%20USB%20V1.2%20User%20Manual.pdf EBB Manual]&lt;br /&gt;
 DC12V-DC24V 9A&lt;br /&gt;
 Temperature Sensor Interface&lt;br /&gt;
 1x 100K NTC (pull-up resistor is 2.2K), supports PT1000&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Followed this guide to install in Debian 12&lt;br /&gt;
 https://docs.mainsail.xyz/setup/getting-started/manual-setup&lt;br /&gt;
&#039;&#039;&#039;Add pkg-config to install&#039;&#039;&#039;&lt;br /&gt;
 sudo service klipper stop&lt;br /&gt;
* Build for SKR 1.4 Turbo&lt;br /&gt;
 make menuconfig&lt;br /&gt;
   --&amp;gt; lp1769 &amp;amp; 120hz&lt;br /&gt;
 make&lt;br /&gt;
 ~/klipper/scripts/flash-sdcard.sh /dev/serial/by-id/usb-Klipper_lpc1769_0D200015871C4AAF52587C5DC52000F5-if00 btt-skr-turbo-v1.4&lt;br /&gt;
* Build for RP2040&lt;br /&gt;
 make menuconfig&lt;br /&gt;
  --&amp;gt; rp2040&lt;br /&gt;
 make flash FLASH_DEVICE=/dev/serial/by-id/usb-Klipper_rp2040_504450612888B91C-if00&lt;br /&gt;
&lt;br /&gt;
 sudo service klipper start&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Voron&amp;diff=2733</id>
		<title>Voron</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Voron&amp;diff=2733"/>
		<updated>2025-12-18T21:04:10Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is my info for my Voron v2.4 build&amp;lt;br&amp;gt;&lt;br /&gt;
* Generic Bigtreetech github: https://github.com/bigtreetech/&lt;br /&gt;
This is what I am using for hardware:&amp;lt;br&amp;gt;&lt;br /&gt;
* BTT SKR 1.4 Turbo (LPC1769) [https://www.hurlster.com/downloads/BTT%20SKR%20V1.4%20Instruction%20Manual.pdf SKR 1.4 Turbo Manual]&lt;br /&gt;
* BTT EXT MOT [https://www.hurlster.com/downloads/BTT%20EXP-MOT%20V1.0User%20Guide.pdf EXT-MOT Manual]&lt;br /&gt;
* 8MM Funssor Hot Bed Cast Alumnium MIC-6 Plate&lt;br /&gt;
 110/220V Silicone AC heater has a built-in NTC 100K thermistor.&lt;br /&gt;
* BTT TFT35 V2.0 [https://www.hurlster.com/downloads/BTT%20TFT35%20V2.0-manual-20200108.pdf TFT35 V2.0 Manual]&lt;br /&gt;
* BTT SB2209 USB (RP2040) [https://www.hurlster.com/downloads/BIGTREETECH%20EBB%20SB2209%20USB%20V1.2%20User%20Manual.pdf EBB Manual]&lt;br /&gt;
 DC12V-DC24V 9A&lt;br /&gt;
 Temperature Sensor Interface&lt;br /&gt;
 1x 100K NTC (pull-up resistor is 2.2K), supports PT1000&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Followed this guide to install in Debian 12&lt;br /&gt;
 https://docs.mainsail.xyz/setup/getting-started/manual-setup&lt;br /&gt;
&#039;&#039;&#039;Add pkg-config to install&#039;&#039;&#039;&lt;br /&gt;
 sudo service klipper stop&lt;br /&gt;
* Build for SKR 1.4 Turbo&lt;br /&gt;
 make menuconfig&lt;br /&gt;
   --&amp;gt; lp1769 &amp;amp; 120hz&lt;br /&gt;
 make&lt;br /&gt;
 ~/klipper/scripts/flash-sdcard.sh /dev/serial/by-id/usb-Klipper_lpc1769_0D200015871C4AAF52587C5DC52000F5-if00 btt-skr-turbo-v1.4&lt;br /&gt;
* Build for RP2040&lt;br /&gt;
 make menuconfig&lt;br /&gt;
  --&amp;gt; rp2040&lt;br /&gt;
 make flash FLASH_DEVICE=/dev/serial/by-id/usb-Klipper_rp2040_504450612888B91C-if00&lt;br /&gt;
 sudo service klipper start&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Orangepi&amp;diff=2732</id>
		<title>Orangepi</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Orangepi&amp;diff=2732"/>
		<updated>2025-11-23T17:55:21Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OrangePi 3B info&amp;lt;br&amp;gt;&lt;br /&gt;
Install the following image for bookworm/debian to SD/TF card&lt;br /&gt;
 Orangepi3b_1.0.8_debian_bookworm_server_linux5.10.160.img&lt;br /&gt;
Then run the following commands to fix Ethernet port not working&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
io -4 0xFDC60284 0x3f3f3f3f&lt;br /&gt;
io -4 0xFDC6028C 0x003f003f&lt;br /&gt;
io -4 0xFDC60298 0x3f003f00&lt;br /&gt;
io -4 0xFDC6029C 0x3f3f3f3f&lt;br /&gt;
io -4 0xfdc60388 0xFFFF0049&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Make permanent&amp;lt;br&amp;gt;&lt;br /&gt;
Add the following before &amp;quot;exit 0&amp;quot; on &#039;&#039;&#039;/etc/rc.local&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ETHERNET FIX&lt;br /&gt;
io -4 0xFDC60284 0x3f3f3f3f&lt;br /&gt;
io -4 0xFDC6028C 0x003f003f&lt;br /&gt;
io -4 0xFDC60298 0x3f003f00&lt;br /&gt;
io -4 0xFDC6029C 0x3f3f3f3f&lt;br /&gt;
io -4 0xfdc60388 0xFFFF0049&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 chmod +x /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
* Install to eMMC&lt;br /&gt;
 scp Orangepi3b_1.0.8_debian_bookworm_server_linux5.10.160.img orangepi@orangepi3b:~/&lt;br /&gt;
* Find eMMC drive&lt;br /&gt;
 ls /dev/mmcblk*boot0 | cut -c1-12&lt;br /&gt;
* Clear eMMC&lt;br /&gt;
 sudo dd bs=1M if=/dev/zero of=/dev/mmcblk0 count=1000 status=progress&lt;br /&gt;
 sudo sync&lt;br /&gt;
* Copy img to eMMC&lt;br /&gt;
 dd bs=1M if=Orangepi3b_1.0.8_debian_bookworm_server_linux5.10.160.img of=/dev/mmcblk0 status=progress&lt;br /&gt;
 sudo sync&lt;br /&gt;
After successfully burning the Linux image of the development board to the eMMC,&amp;lt;br&amp;gt;&lt;br /&gt;
you can use the poweroff command to shut down. Then please pull out the TF card, and&amp;lt;br&amp;gt;&lt;br /&gt;
then short press the power button to turn on, and then the Linux system in the eMMC will&amp;lt;br&amp;gt;&lt;br /&gt;
be started.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Category Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Orangepi&amp;diff=2731</id>
		<title>Orangepi</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Orangepi&amp;diff=2731"/>
		<updated>2025-11-23T16:55:24Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OrangePi 3B info&amp;lt;br&amp;gt;&lt;br /&gt;
Install the following image for bookworm/debian&lt;br /&gt;
 Orangepi3b_1.0.8_debian_bookworm_server_linux5.10.160.img&lt;br /&gt;
Then run the following commands to fix Ethernet port not working&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
io -4 0xFDC60284 0x3f3f3f3f&lt;br /&gt;
io -4 0xFDC6028C 0x003f003f&lt;br /&gt;
io -4 0xFDC60298 0x3f003f00&lt;br /&gt;
io -4 0xFDC6029C 0x3f3f3f3f&lt;br /&gt;
io -4 0xfdc60388 0xFFFF0049&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Make permanent&amp;lt;br&amp;gt;&lt;br /&gt;
Add the following before &amp;quot;exit 0&amp;quot; on &#039;&#039;&#039;/etc/rc.local&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ETHERNET FIX&lt;br /&gt;
io -4 0xFDC60284 0x3f3f3f3f&lt;br /&gt;
io -4 0xFDC6028C 0x003f003f&lt;br /&gt;
io -4 0xFDC60298 0x3f003f00&lt;br /&gt;
io -4 0xFDC6029C 0x3f3f3f3f&lt;br /&gt;
io -4 0xfdc60388 0xFFFF0049&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 chmod +x /etc/rc.local&lt;br /&gt;
[[Category Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Orangepi&amp;diff=2730</id>
		<title>Orangepi</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Orangepi&amp;diff=2730"/>
		<updated>2025-11-23T16:55:10Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: Created page with &amp;quot;OrangePi 3B info&amp;lt;br&amp;gt; Install the following image for bookworm/debian  Orangepi3b_1.0.8_debian_bookworm_server_linux5.10.160.img Then run the following commands to fix Ethernet port not working &amp;lt;pre&amp;gt; io -4 0xFDC60284 0x3f3f3f3f io -4 0xFDC6028C 0x003f003f io -4 0xFDC60298 0x3f003f00 io -4 0xFDC6029C 0x3f3f3f3f io -4 0xfdc60388 0xFFFF0049 &amp;lt;/pre&amp;gt; * Make permanent&amp;lt;br&amp;gt; Add the following before &amp;quot;exit 0&amp;quot; on &amp;#039;&amp;#039;&amp;#039;/etc/rc.local&amp;#039;&amp;#039;&amp;#039; &amp;lt;pre&amp;gt; # ETHERNET FIX io -4 0xFDC60284 0x3f3f3f3f io...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OrangePi 3B info&amp;lt;br&amp;gt;&lt;br /&gt;
Install the following image for bookworm/debian&lt;br /&gt;
 Orangepi3b_1.0.8_debian_bookworm_server_linux5.10.160.img&lt;br /&gt;
Then run the following commands to fix Ethernet port not working&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
io -4 0xFDC60284 0x3f3f3f3f&lt;br /&gt;
io -4 0xFDC6028C 0x003f003f&lt;br /&gt;
io -4 0xFDC60298 0x3f003f00&lt;br /&gt;
io -4 0xFDC6029C 0x3f3f3f3f&lt;br /&gt;
io -4 0xfdc60388 0xFFFF0049&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Make permanent&amp;lt;br&amp;gt;&lt;br /&gt;
Add the following before &amp;quot;exit 0&amp;quot; on &#039;&#039;&#039;/etc/rc.local&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ETHERNET FIX&lt;br /&gt;
io -4 0xFDC60284 0x3f3f3f3f&lt;br /&gt;
io -4 0xFDC6028C 0x003f003f&lt;br /&gt;
io -4 0xFDC60298 0x3f003f00&lt;br /&gt;
io -4 0xFDC6029C 0x3f3f3f3f&lt;br /&gt;
io -4 0xfdc60388 0xFFFF0049&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 chmod +x /etc/rc.local&lt;br /&gt;
[Category Linux]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Voron&amp;diff=2729</id>
		<title>Voron</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Voron&amp;diff=2729"/>
		<updated>2025-11-11T00:08:49Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is my info for my Voron v2.4 build&amp;lt;br&amp;gt;&lt;br /&gt;
* Generic Bigtreetech github: https://github.com/bigtreetech/&lt;br /&gt;
This is what I am using for hardware:&amp;lt;br&amp;gt;&lt;br /&gt;
* BTT SKR 1.4 Turbo (LPC1769) [https://www.hurlster.com/downloads/BTT%20SKR%20V1.4%20Instruction%20Manual.pdf SKR 1.4 Turbo Manual]&lt;br /&gt;
* BTT EXT MOT [https://www.hurlster.com/downloads/BTT%20EXP-MOT%20V1.0User%20Guide.pdf EXT-MOT Manual]&lt;br /&gt;
* 8MM Funssor Hot Bed Cast Alumnium MIC-6 Plate&lt;br /&gt;
 110/220V Silicone AC heater has a built-in NTC 100K thermistor.&lt;br /&gt;
* BTT TFT35 V2.0 [https://www.hurlster.com/downloads/BTT%20TFT35%20V2.0-manual-20200108.pdf TFT35 V2.0 Manual]&lt;br /&gt;
* BTT SB2209 USB (RP2040) [https://www.hurlster.com/downloads/BIGTREETECH%20EBB%20SB2209%20USB%20V1.2%20User%20Manual.pdf EBB Manual]&lt;br /&gt;
 DC12V-DC24V 9A&lt;br /&gt;
 Temperature Sensor Interface&lt;br /&gt;
 1x 100K NTC (pull-up resistor is 2.2K), supports PT1000&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Followed this guide to install in Debian 12&lt;br /&gt;
 https://docs.mainsail.xyz/setup/getting-started/manual-setup&lt;br /&gt;
&#039;&#039;&#039;Add pkg-config to install&#039;&#039;&#039;&lt;br /&gt;
 sudo service klipper stop&lt;br /&gt;
* Build for SKR 1.4 Turbo&lt;br /&gt;
 ~/klipper/scripts/flash-sdcard.sh /dev/serial/by-id/usb-Klipper_lpc1769_0D200015871C4AAF52587C5DC52000F5-if00 btt-skr-turbo-v1.4&lt;br /&gt;
* Build for RP2040&lt;br /&gt;
 make flash FLASH_DEVICE=/dev/serial/by-id/usb-Klipper_rp2040_504450612888B91C-if00&lt;br /&gt;
 sudo service klipper start&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Voron&amp;diff=2728</id>
		<title>Voron</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Voron&amp;diff=2728"/>
		<updated>2025-11-10T23:31:51Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is my info for my Voron v2.4 build&amp;lt;br&amp;gt;&lt;br /&gt;
* Generic Bigtreetech github: https://github.com/bigtreetech/&lt;br /&gt;
This is what I am using for hardware:&amp;lt;br&amp;gt;&lt;br /&gt;
* BTT SKR 1.4 Turbo (LPC1769) [https://www.hurlster.com/downloads/BTT%20SKR%20V1.4%20Instruction%20Manual.pdf SKR 1.4 Turbo Manual]&lt;br /&gt;
* BTT EXT MOT [https://www.hurlster.com/downloads/BTT%20EXP-MOT%20V1.0User%20Guide.pdf EXT-MOT Manual]&lt;br /&gt;
* BTT TFT35 V2.0 [https://www.hurlster.com/downloads/BTT%20TFT35%20V2.0-manual-20200108.pdf TFT35 V2.0 Manual]&lt;br /&gt;
* BTT SB2209 USB (RP2040) [https://www.hurlster.com/downloads/BIGTREETECH%20EBB%20SB2209%20USB%20V1.2%20User%20Manual.pdf EBB Manual]&lt;br /&gt;
 DC12V-DC24V 9A&lt;br /&gt;
 Temperature Sensor Interface&lt;br /&gt;
 1x 100K NTC (pull-up resistor is 2.2K), supports PT1000&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Followed this guide to install in Debian 12&lt;br /&gt;
 https://docs.mainsail.xyz/setup/getting-started/manual-setup&lt;br /&gt;
&#039;&#039;&#039;Add pkg-config to install&#039;&#039;&#039;&lt;br /&gt;
 sudo service klipper stop&lt;br /&gt;
* Build for SKR 1.4 Turbo&lt;br /&gt;
 ~/klipper/scripts/flash-sdcard.sh /dev/serial/by-id/usb-Klipper_lpc1769_0D200015871C4AAF52587C5DC52000F5-if00 btt-skr-turbo-v1.4&lt;br /&gt;
* Build for RP2040&lt;br /&gt;
 make flash FLASH_DEVICE=/dev/serial/by-id/usb-Klipper_rp2040_504450612888B91C-if00&lt;br /&gt;
 sudo service klipper start&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Voron&amp;diff=2727</id>
		<title>Voron</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Voron&amp;diff=2727"/>
		<updated>2025-11-10T23:29:49Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is my info for my Voron v2.4 build&amp;lt;br&amp;gt;&lt;br /&gt;
This is what I am using for hardware:&amp;lt;br&amp;gt;&lt;br /&gt;
* BTT SKR 1.4 Turbo (LPC1769) [https://www.hurlster.com/downloads/BTT%20SKR%20V1.4%20Instruction%20Manual.pdf SKR 1.4 Turbo Manual]&lt;br /&gt;
* BTT EXT MOT [https://www.hurlster.com/downloads/BTT%20EXP-MOT%20V1.0User%20Guide.pdf EXT-MOT Manual]&lt;br /&gt;
* BTT TFT35 V2.0 [https://www.hurlster.com/downloads/BTT%20TFT35%20V2.0-manual-20200108.pdf TFT35 V2.0 Manual]&lt;br /&gt;
* BTT SB2209 USB (RP2040) [https://www.hurlster.com/downloads/BIGTREETECH%20EBB%20SB2209%20USB%20V1.2%20User%20Manual.pdf EBB Manual]&lt;br /&gt;
 DC12V-DC24V 9A&lt;br /&gt;
 Temperature Sensor Interface&lt;br /&gt;
 1x 100K NTC (pull-up resistor is 2.2K), supports PT1000&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Followed this guide to install in Debian 12&lt;br /&gt;
 https://docs.mainsail.xyz/setup/getting-started/manual-setup&lt;br /&gt;
&#039;&#039;&#039;Add pkg-config to install&#039;&#039;&#039;&lt;br /&gt;
 sudo service klipper stop&lt;br /&gt;
* Build for SKR 1.4 Turbo&lt;br /&gt;
 ~/klipper/scripts/flash-sdcard.sh /dev/serial/by-id/usb-Klipper_lpc1769_0D200015871C4AAF52587C5DC52000F5-if00 btt-skr-turbo-v1.4&lt;br /&gt;
* Build for RP2040&lt;br /&gt;
 make flash FLASH_DEVICE=/dev/serial/by-id/usb-Klipper_rp2040_504450612888B91C-if00&lt;br /&gt;
 sudo service klipper start&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Voron&amp;diff=2726</id>
		<title>Voron</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Voron&amp;diff=2726"/>
		<updated>2025-11-10T19:51:38Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: Created page with &amp;quot;This is my info for my Voron v2.4 build&amp;lt;br&amp;gt; This is what I am using for hardware:&amp;lt;br&amp;gt; * BTT SKR 1.4 Turbo (LPC1769) * BTT EXT MOT * BTT SB2209 USB (RP2040) &amp;lt;br&amp;gt; * Followed this guide to install in Debian 12  https://docs.mainsail.xyz/setup/getting-started/manual-setup &amp;#039;&amp;#039;&amp;#039;Add pkg-config to install&amp;#039;&amp;#039;&amp;#039;  sudo service klipper stop * Build for SKR 1.4 Turbo  ~/klipper/scripts/flash-sdcard.sh /dev/serial/by-id/usb-Klipper_lpc1769_0D200015871C4AAF52587C5DC52000F5-if00 btt-skr-tu...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is my info for my Voron v2.4 build&amp;lt;br&amp;gt;&lt;br /&gt;
This is what I am using for hardware:&amp;lt;br&amp;gt;&lt;br /&gt;
* BTT SKR 1.4 Turbo (LPC1769)&lt;br /&gt;
* BTT EXT MOT&lt;br /&gt;
* BTT SB2209 USB (RP2040)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Followed this guide to install in Debian 12&lt;br /&gt;
 https://docs.mainsail.xyz/setup/getting-started/manual-setup&lt;br /&gt;
&#039;&#039;&#039;Add pkg-config to install&#039;&#039;&#039;&lt;br /&gt;
 sudo service klipper stop&lt;br /&gt;
* Build for SKR 1.4 Turbo&lt;br /&gt;
 ~/klipper/scripts/flash-sdcard.sh /dev/serial/by-id/usb-Klipper_lpc1769_0D200015871C4AAF52587C5DC52000F5-if00 btt-skr-turbo-v1.4&lt;br /&gt;
* Build for RP2040&lt;br /&gt;
 make flash FLASH_DEVICE=/dev/serial/by-id/usb-Klipper_rp2040_504450612888B91C-if00&lt;br /&gt;
 sudo service klipper start&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Syslog&amp;diff=2725</id>
		<title>Syslog</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Syslog&amp;diff=2725"/>
		<updated>2024-04-01T17:29:31Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Remote Syslogging ===&lt;br /&gt;
*/etc/default/rsyslog&lt;br /&gt;
 # Options for rsyslogd&lt;br /&gt;
 # -m 0 disables &#039;MARK&#039; messages (deprecated, only used in compat mode &amp;lt; 3)&lt;br /&gt;
 # -r enables logging from remote machines (deprecated, only used in compat mode &amp;lt; 3)&lt;br /&gt;
 # -x disables DNS lookups on messages received with -r&lt;br /&gt;
 # -c compatibility mode&lt;br /&gt;
 # See rsyslogd(8) for more details&lt;br /&gt;
 RSYSLOGD_OPTIONS=&amp;quot;-r -m0 -c4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Custom Log Redirect ===&lt;br /&gt;
*/etc/rsyslog.d/10-custom.conf&lt;br /&gt;
 # process remote messages&lt;br /&gt;
 $template GW,&amp;quot;/var/log/router.log&amp;quot;&lt;br /&gt;
 :fromhost-ip,isequal,&amp;quot;192.168.0.1&amp;quot;    -?GW&lt;br /&gt;
 &amp;amp; ~&lt;br /&gt;
&lt;br /&gt;
=== Per IP Logging ===&lt;br /&gt;
* /etc/rsyslog.d/10-custom.conf&lt;br /&gt;
&lt;br /&gt;
 $template DynaFile,&amp;quot;/var/log/network/%FROMHOST-IP%-%HOSTNAME%.log&amp;quot;&lt;br /&gt;
 *.* -?DynaFile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Sas2008&amp;diff=2724</id>
		<title>Sas2008</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Sas2008&amp;diff=2724"/>
		<updated>2024-03-01T00:10:15Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Firmware upgrading LSI SAS2008 HBA cards&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Download files: https://hurlster.com/LSI_SAS2008_Flash.zip &amp;lt;br&amp;gt;&lt;br /&gt;
Create FreeDOS USB stick&amp;lt;br&amp;gt;&lt;br /&gt;
copy the following files to the USB stick&amp;lt;br&amp;gt;&lt;br /&gt;
2118ir.bin&amp;lt;br&amp;gt;&lt;br /&gt;
2118it.bin&amp;lt;br&amp;gt;&lt;br /&gt;
mptsas2.rom&amp;lt;br&amp;gt;&lt;br /&gt;
sas2flsh.exe&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Boot system to USB stick&amp;lt;br&amp;gt;&lt;br /&gt;
List controller(s)&lt;br /&gt;
&amp;lt;pre&amp;gt;sas2flsh -listall&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will flash &#039;&#039;&#039;controller 1&#039;&#039;&#039; to latest IR firmware v20&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sas2flsh -c 1 -o -f 2118ir.bin -b mptsas2.rom&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you are switching from IT&amp;lt;-&amp;gt;IR then you must erase memory &amp;quot;6&amp;quot; first&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sas2flsh -c 1 -o -e 6&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then run the following command&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sas2flsh -c 1 -o -f 2118ir.bin -b mptsas2.rom&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Sas2008&amp;diff=2723</id>
		<title>Sas2008</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Sas2008&amp;diff=2723"/>
		<updated>2024-03-01T00:04:15Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: Created page with &amp;quot;Firmware upgrading LSI SAS2008 HBA cards&amp;lt;br&amp;gt; &amp;lt;p&amp;gt; Create FreeDOS USB stick&amp;lt;br&amp;gt; copy the following files to the USB stick&amp;lt;br&amp;gt; 2118ir.bin&amp;lt;br&amp;gt; 2118it.bin&amp;lt;br&amp;gt; mptsas2.rom&amp;lt;br&amp;gt; sas2flsh.exe&amp;lt;br&amp;gt; &amp;lt;p&amp;gt; Boot system to USB stick&amp;lt;br&amp;gt; List controller(s) &amp;lt;pre&amp;gt;sas2flsh -listall&amp;lt;/pre&amp;gt; This will flash &amp;#039;&amp;#039;&amp;#039;controller 1&amp;#039;&amp;#039;&amp;#039; to latest IR firmware v20&amp;lt;br&amp;gt; &amp;lt;pre&amp;gt;sas2flsh -c 1 -o -f 2118ir.bin -b mptsas2.rom&amp;lt;/pre&amp;gt; If you are switching from IT&amp;lt;-&amp;gt;IR then you must erase memory &amp;quot;6&amp;quot; first&amp;lt;br&amp;gt; &amp;lt;pre&amp;gt;sas2f...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Firmware upgrading LSI SAS2008 HBA cards&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Create FreeDOS USB stick&amp;lt;br&amp;gt;&lt;br /&gt;
copy the following files to the USB stick&amp;lt;br&amp;gt;&lt;br /&gt;
2118ir.bin&amp;lt;br&amp;gt;&lt;br /&gt;
2118it.bin&amp;lt;br&amp;gt;&lt;br /&gt;
mptsas2.rom&amp;lt;br&amp;gt;&lt;br /&gt;
sas2flsh.exe&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Boot system to USB stick&amp;lt;br&amp;gt;&lt;br /&gt;
List controller(s)&lt;br /&gt;
&amp;lt;pre&amp;gt;sas2flsh -listall&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will flash &#039;&#039;&#039;controller 1&#039;&#039;&#039; to latest IR firmware v20&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sas2flsh -c 1 -o -f 2118ir.bin -b mptsas2.rom&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you are switching from IT&amp;lt;-&amp;gt;IR then you must erase memory &amp;quot;6&amp;quot; first&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sas2flsh -c 1 -o -e 6&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then run the following command&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sas2flsh -c 1 -o -f 2118ir.bin -b mptsas2.rom&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Networkmanager&amp;diff=2722</id>
		<title>Networkmanager</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Networkmanager&amp;diff=2722"/>
		<updated>2024-01-31T20:13:13Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: Created page with &amp;quot;Setting up network manager to be DHCP profile with a failback to a static profile.  * /etc/NetworkManager/system-connections/ Create two profiles&amp;lt;br&amp;gt; &amp;#039;&amp;#039;&amp;#039;DHCP profile&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt; &amp;#039;Wired connection 1.nmconnection&amp;#039; &amp;lt;pre&amp;gt; [connection] id=Wired connection 1 uuid=fae7a174-6066-3083-ac48-64732c448a3d type=ethernet autoconnect-priority=1 autoconnect-retries=2 interface-name=end1 timestamp=1706580352  [ethernet]  [ipv4] dns-search= method=auto dhcp-timeout=10 may-fail=false  [ipv6] ad...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Setting up network manager to be DHCP profile with a failback to a static profile.&lt;br /&gt;
&lt;br /&gt;
* /etc/NetworkManager/system-connections/&lt;br /&gt;
Create two profiles&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;DHCP profile&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;Wired connection 1.nmconnection&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[connection]&lt;br /&gt;
id=Wired connection 1&lt;br /&gt;
uuid=fae7a174-6066-3083-ac48-64732c448a3d&lt;br /&gt;
type=ethernet&lt;br /&gt;
autoconnect-priority=1&lt;br /&gt;
autoconnect-retries=2&lt;br /&gt;
interface-name=end1&lt;br /&gt;
timestamp=1706580352&lt;br /&gt;
&lt;br /&gt;
[ethernet]&lt;br /&gt;
&lt;br /&gt;
[ipv4]&lt;br /&gt;
dns-search=&lt;br /&gt;
method=auto&lt;br /&gt;
dhcp-timeout=10&lt;br /&gt;
may-fail=false&lt;br /&gt;
&lt;br /&gt;
[ipv6]&lt;br /&gt;
addr-gen-mode=default&lt;br /&gt;
method=disabled&lt;br /&gt;
&lt;br /&gt;
[proxy]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Static Profile&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;Wired connection 2.nmconnection&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[connection]&lt;br /&gt;
id=static&lt;br /&gt;
uuid=fae7a174-6066-3083-ac48-64732c448a3d&lt;br /&gt;
type=ethernet&lt;br /&gt;
interface-name=end1&lt;br /&gt;
autoconnect-priority=0&lt;br /&gt;
autoconnect-retries=-1&lt;br /&gt;
&lt;br /&gt;
[ethernet]&lt;br /&gt;
&lt;br /&gt;
[ipv4]&lt;br /&gt;
address1=192.168.1.2/24,192.168.1.1&lt;br /&gt;
dns=192.168.1.1&lt;br /&gt;
dns-search=&lt;br /&gt;
method=manual&lt;br /&gt;
&lt;br /&gt;
[ipv6]&lt;br /&gt;
addr-gen-mode=default&lt;br /&gt;
method=disabled&lt;br /&gt;
&lt;br /&gt;
[proxy]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=RAID&amp;diff=2721</id>
		<title>RAID</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=RAID&amp;diff=2721"/>
		<updated>2023-09-25T10:27:44Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Quick reference==&lt;br /&gt;
Create a RAID 1 (mirror) volume from two partitions of exactly or nearly exactly the same size:&lt;br /&gt;
 mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sda1 /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
note: you can create a RAID 1 array with more than two devices. This gives you multiple copies. While there is little extra safety in this, it makes sense when you are creating a RAID 5 array for most of your disk space and using RAID 1 only for a small /boot partition. Using the same partitioning for all member drives keeps things simple.&lt;br /&gt;
&lt;br /&gt;
Create a RAID 5 volume from three partitions of exactly or nearly exactly the same size:&lt;br /&gt;
 mdadm --create /dev/md1 --level=5 --raid-devices=3 /dev/sda2 /dev/sdb2 /dev/sdc2&lt;br /&gt;
&lt;br /&gt;
If you receive an error, such as:&lt;br /&gt;
&amp;quot;mdadm: RUN_ARRAY failed: Invalid argument&amp;quot;,&lt;br /&gt;
make sure your kernel supports (either via a module or by being directly compiled in) the raid mode you are trying to use. Most modern kernels do, but you never know...&lt;br /&gt;
&lt;br /&gt;
If the partitions used in your RAID array are not the same size, mdadm will use the smallest.&lt;br /&gt;
&lt;br /&gt;
To add RAID device &#039;&#039;&#039;md0&#039;&#039;&#039; to /etc/mdadm/mdadm.conf so that it is recognized the next time you boot.&lt;br /&gt;
 mdadm -Es | grep &#039;&#039;&#039;md0&#039;&#039;&#039;  &amp;gt;&amp;gt;/etc/mdadm/mdadm.conf&lt;br /&gt;
&lt;br /&gt;
View the status of a multi disk array.&lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mdstat&lt;br /&gt;
&lt;br /&gt;
note: you may want to keep the output from this on a separate machine in case you need to know the drive order if mdadm can&#039;t start the array. Providing you have sufficient working drives, you can manually start a RAID array using the mdadm—create command if you specify the member partitions in the correct order.&lt;br /&gt;
&lt;br /&gt;
Migrate an existing [[Linux]] partition to a RAID 5 volume of three partitions, where the existing Linux system is on /dev/sda1:&lt;br /&gt;
 mdadm --create /dev/md1 --level=5 --raid-devices=3 missing /dev/sdb2 /dev/sdc2&lt;br /&gt;
 mdadm -Es &amp;gt;&amp;gt;/etc/mdadm/mdadm.conf&lt;br /&gt;
 update-initramfs -u&lt;br /&gt;
 dd if=/dev/sda1 of=/dev/md1&lt;br /&gt;
 (reboot into /dev/md1)&lt;br /&gt;
 mdadm --add /dev/md1 /dev/sda1&lt;br /&gt;
&lt;br /&gt;
note: the /boot directory should be on /dev/md0 (see top). You should also verify your ability to boot into /dev/md1 before adding your original boot partition into the array! Also, make sure you boot loader (Lilo, Grub or whatever) is installed on each physical drive containing a /boot copy.&lt;br /&gt;
&lt;br /&gt;
Add a new drive to a RAID 5 volume:&lt;br /&gt;
 mdadm --add /dev/md1 /dev/sdd1&lt;br /&gt;
 mdadm --grow /dev/md1 --raid-devices=4&lt;br /&gt;
&lt;br /&gt;
note: this adds a &amp;quot;spare&amp;quot; drive to the array then grows the array to use its space.&lt;br /&gt;
&lt;br /&gt;
In some configurations you may not be able to grow the array until you have removed the internal bitmap. You can add this again after the array has been grown.&lt;br /&gt;
 mdadm --grow /dev/md1 -b none&lt;br /&gt;
and to add the bitmap back.&lt;br /&gt;
 mdadm --grow /dev/md1 -b internal&lt;br /&gt;
Making the array larger by increasing the size of the component partitions can be done by replacing the partitions in the array one at a time, letting them resync before replacing the next one. This can take time and, if your machine doesn&#039;t allow hot-swapping, take many reboots.&lt;br /&gt;
&lt;br /&gt;
You may not actually do this all at one sitting. For example, if your drives are getting old, you may replace each one when it fails with a larger drive partitioned to allow for a larger array. When you&#039;ve replaced all the drives, then grow the array to use the full space.&lt;br /&gt;
 mdadm /dev/md1 --fail /dev/sda1&lt;br /&gt;
 (replace the first drive with the new, larger one then partition it)&lt;br /&gt;
 mdadm --add /dev/md1 /dev/sda1&lt;br /&gt;
 (wait for re-sync to complete then repeat for next drive)&lt;br /&gt;
 mdadm --grow /dev/md1 --size=max&lt;br /&gt;
 (now resize the file-system(s) on the RAID array to use the new space)&lt;br /&gt;
&lt;br /&gt;
Deleting a RAID array: You may halt and delete a RAID array with following commands&lt;br /&gt;
 &lt;br /&gt;
 mdadm --stop /dev/md0  # to halt the array&lt;br /&gt;
 mdadm --remove /dev/md0  # to remove the array&lt;br /&gt;
 mdadm --zero-superblock /dev/sd[abc]1  # delete the superblock from all drives in the array&lt;br /&gt;
 gedit /etc/mdadm/mdamd.conf # to delete any rows related to deleted array&lt;br /&gt;
&lt;br /&gt;
=== Optimize ===&lt;br /&gt;
RAID0 or RAID5 can be boosted by increasing the number in the following file.&lt;br /&gt;
 /sys/block/md0/md/stripe_cache_size&lt;br /&gt;
 *change from 256(default) to 8192&lt;br /&gt;
&lt;br /&gt;
Check performance&lt;br /&gt;
*writeperformance.sh&lt;br /&gt;
 dd if=/dev/zero of=/var/local/storage/10gb.16384k.stripe.out bs=1M count=10240&lt;br /&gt;
&lt;br /&gt;
*readperformance.sh&lt;br /&gt;
 dd if=/var/local/storage/10gb.16384k.stripe.out of=/dev/null bs=1M&lt;br /&gt;
&lt;br /&gt;
Example change:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MD1 - RAID5&lt;br /&gt;
BEFORE(256):&lt;br /&gt;
write = 10737418240 bytes (11 GB) copied, 242.562 s, 44.3 MB/s&lt;br /&gt;
read = 10737418240 bytes (11 GB) copied, 57.0372 s, 188 MB/s&lt;br /&gt;
&lt;br /&gt;
AFTER(8192):&lt;br /&gt;
write = 10737418240 bytes (11 GB) copied, 75.4038 s, 142 MB/s&lt;br /&gt;
read = 10737418240 bytes (11 GB) copied, 58.3019 s, 184 MB/s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Speed up RAID1 resync&lt;br /&gt;
 echo 200000 &amp;gt; /proc/sys/dev/raid/speed_limit_max&lt;br /&gt;
 echo 200000 &amp;gt; /proc/sys/dev/raid/speed_limit_min&lt;br /&gt;
&lt;br /&gt;
== SNMP monitor script ==&lt;br /&gt;
/usr/local/sbin/check-md0.sh&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 MDADM=`mdadm --detail /dev/md0 | grep State\ \:|cut -c19-60`&lt;br /&gt;
 #SNMP=`snmpwalk -v1 -c YOUR-PUBLIC $1 extOutput |grep mdadm`&lt;br /&gt;
 TMP1=`echo $MDADM |grep degraded`&lt;br /&gt;
 TMP2=`echo $MDADM |grep clean`&lt;br /&gt;
 &lt;br /&gt;
 if [ &amp;quot;$TMP1&amp;quot; = &amp;quot;&amp;quot; ]; then&lt;br /&gt;
   echo &amp;quot;OK&amp;quot;&lt;br /&gt;
   return 0&lt;br /&gt;
 else&lt;br /&gt;
   echo &amp;quot;DEGRADED&amp;quot;&lt;br /&gt;
   return 2&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
Call with snmpd in snmpd.conf&lt;br /&gt;
 exec md0status /usr/local/sbin/check-md0.sh&lt;br /&gt;
== Disk Problems ==&lt;br /&gt;
The Linux command to enter at a shell prompt to surface scan a disk partition is&lt;br /&gt;
   fsck -f -p -y -C -V -c -c /dev/xxan&lt;br /&gt;
Those parameters mean:&lt;br /&gt;
 -f 	&amp;quot;force&amp;quot; the complete operation to occur even if the flag says the disk is &amp;quot;clean&amp;quot;&lt;br /&gt;
 -y	automatically answer &amp;quot;yes&amp;quot; whenever an error is discovered which asks the user what to do&lt;br /&gt;
 (needed for unattended automatic fix operation)&lt;br /&gt;
 -C	(note upper case)&lt;br /&gt;
 present a progress bar showing how much of the operation has been completed&lt;br /&gt;
 -V	(note upper case)&lt;br /&gt;
 enable &amp;quot;verbose&amp;quot; mode to keep the user apprised of what&#039;s happening by printing informative messages&lt;br /&gt;
 -c -c	(no that&#039;s not a stutter, it really does need to be entered twice for this particular piece of software - only once would specify the  &amp;quot;shortcut&amp;quot; of only reading the existing data from every sector and relying completely on the disk itself to detect any problems, thus missing  many flaws)&lt;br /&gt;
 do a comprehensive surface scan operation by saving the existing contents of each area, writing a test pattern to the area, reading the area  and making sure the data read is exactly the same as the pattern that was written, then finally restoring the initial contents of the area&lt;br /&gt;
 xxan	the disk partition to be operated on:&lt;br /&gt;
 xx is either sd for SCSI and for Serial/Sata disks, or hd for older Parallel/Pata ATA/IDE disks&lt;br /&gt;
 a is a, b, c etc. to specify which disk&lt;br /&gt;
 n is 1, 2, 3 etc. to specify which partition on the disk&lt;br /&gt;
&lt;br /&gt;
(Note the disk partition should not be mounted [i.e. any possibility of being in use] during the operation&lt;br /&gt;
&lt;br /&gt;
==LSI SAS3008==&lt;br /&gt;
VMware install vmware-esx-sas3ircu.vib&amp;lt;br&amp;gt;&lt;br /&gt;
===Disk Management===&lt;br /&gt;
Display disks on controller &amp;quot;0&amp;quot;&lt;br /&gt;
 /opt/lsi/bin/sas3ircu 0 display&lt;br /&gt;
Show volume status&lt;br /&gt;
 /opt/lsi/bin/sas3ircu 0 status&lt;br /&gt;
Offline disk (PHY[2] Enclosure#/Slot# : 1:6)&lt;br /&gt;
  /opt/lsi/bin/sas3ircu 0 setoffline 1:6&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Emby&amp;diff=2720</id>
		<title>Emby</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Emby&amp;diff=2720"/>
		<updated>2023-08-30T16:57:34Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: Created page with &amp;quot;= DVR Script = Live tv post processing script&amp;lt;br&amp;gt; Emby Settings (Advanced)&amp;lt;br&amp;gt; Post-processing application -&amp;gt; /bin/bash&amp;lt;br&amp;gt; Post-processing command line arguments -&amp;gt; /usr/local/sbin/post.sh &amp;quot;{path}&amp;quot;&amp;lt;br&amp;gt;  * /usr/local/sbin/post.sh &amp;lt;pre&amp;gt; #!/bin/bash #Set these values for your setup tmpBase=/tmp/                           # Where recordings are to be moved for processing comProc=comcut                          # comcut or comchap for cut vs chapter marks comskip=/usr/bin/co...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= DVR Script =&lt;br /&gt;
Live tv post processing script&amp;lt;br&amp;gt;&lt;br /&gt;
Emby Settings (Advanced)&amp;lt;br&amp;gt;&lt;br /&gt;
Post-processing application -&amp;gt; /bin/bash&amp;lt;br&amp;gt;&lt;br /&gt;
Post-processing command line arguments -&amp;gt; /usr/local/sbin/post.sh &amp;quot;{path}&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* /usr/local/sbin/post.sh&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#Set these values for your setup&lt;br /&gt;
tmpBase=/tmp/                           # Where recordings are to be moved for processing&lt;br /&gt;
comProc=comcut                          # comcut or comchap for cut vs chapter marks&lt;br /&gt;
comskip=/usr/bin/comskip                # In case you put it somewhere emby won&#039;t look&lt;br /&gt;
ffmpegProc=/usr/bin/ffmpeg              # Use system ffmpeg if run manually&lt;br /&gt;
svcUser=emby                            # Who is the emby service running as&lt;br /&gt;
tgtRatio=13                             # H265 w/comcut 18~20% of original, H264 20~22%&lt;br /&gt;
                                        # Pick a number just under the target&lt;br /&gt;
origFile=&amp;quot;$1&amp;quot;&lt;br /&gt;
tmpFile=&amp;quot;$origFile.tmp&amp;quot;&lt;br /&gt;
tgtFile=&amp;quot;${origFile%.*}.mp4&amp;quot;&lt;br /&gt;
tmpEncode=&amp;quot;$origFile.mp4&amp;quot;&lt;br /&gt;
tmpEncode2=&amp;quot;$origFile.2.mp4&amp;quot;&lt;br /&gt;
tmpSrt=&amp;quot;$origFile.srt&amp;quot;&lt;br /&gt;
dvrPostLog=&#039;/var/log/dvrProcessing.log&#039;&lt;br /&gt;
dvrLockLog=&#039;/var/log/dvrLock.log&#039;&lt;br /&gt;
lockFile=&#039;/tmp/dvrProcessing.lock&#039;&lt;br /&gt;
&lt;br /&gt;
failed=1&lt;br /&gt;
((tryCount=3))&lt;br /&gt;
&lt;br /&gt;
#Check to see if the emby server called this and use the correct ffmpeg&lt;br /&gt;
if [ &amp;quot;$USER&amp;quot; = &amp;quot;$svcUser&amp;quot; ];&lt;br /&gt;
then&lt;br /&gt;
        echo &amp;quot;Running inside of emby as $USER&amp;quot; | tee -a $dvrPostLog&lt;br /&gt;
        ffmpegProc=/opt/emby-server/bin/ffmpeg&lt;br /&gt;
        #ffmpegProc=/usr/bin/ffmpeg&lt;br /&gt;
        echo -e &amp;quot;Moving $origFile to $tmpBase&amp;quot; | tee -a $dvrPostLog&lt;br /&gt;
        mv &amp;quot;$origFile&amp;quot; &amp;quot;$tmpBase&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        tgtTemp=`echo $origFile |sed &amp;quot;s|.*\/\(.*\)$|\1|&amp;quot;`&lt;br /&gt;
#        origDir=`echo $origFile |sed &amp;quot;s|\(.*\)$tgtTemp$|\1|&amp;quot;`&lt;br /&gt;
        origDir=$(dirname &amp;quot;$origFile&amp;quot;)&lt;br /&gt;
        origFile=&amp;quot;$tmpBase$tgtTemp&amp;quot;&lt;br /&gt;
        tmpFile=&amp;quot;$origFile.tmp&amp;quot;&lt;br /&gt;
        tgtFile=&amp;quot;${origFile%.*}.mp4&amp;quot;&lt;br /&gt;
        tmpEncode=&amp;quot;$origFile.mp4&amp;quot;&lt;br /&gt;
        tmpEncode2=&amp;quot;$origFile.2.mp4&amp;quot;&lt;br /&gt;
        tmpSrt=&amp;quot;$origFile.srt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
#Get Source file size&lt;br /&gt;
origFilesize=`stat -c %s &amp;quot;$origFile&amp;quot;`&lt;br /&gt;
&lt;br /&gt;
#Wait if post processing is already running&lt;br /&gt;
while [ -f $lockFile ] ;&lt;br /&gt;
do&lt;br /&gt;
    echo &amp;quot;`date &#039;+%Y-%m-%d %H:%M:%S&#039;` &#039;$lockFile&#039; exists, sleeping processing of &#039;$origFile&#039;&amp;quot; | tee $dvrLockLog&lt;br /&gt;
    sleep 60&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
#Create lock file to prevent other post-processing from running simultaneously&lt;br /&gt;
echo &amp;quot;`date &#039;+%Y-%m-%d %H:%M:%S&#039;` Creating lock file for processing &#039;$origFile&#039;&amp;quot; | tee -a $dvrPostLog&lt;br /&gt;
touch $lockFile&lt;br /&gt;
&lt;br /&gt;
#Mark and cut commercials&lt;br /&gt;
if [ &amp;quot;$comProc&amp;quot; = &amp;quot;comcut&amp;quot; ];&lt;br /&gt;
then&lt;br /&gt;
        echo &amp;quot;`date &#039;+%Y-%m-%d %H:%M:%S&#039;` Cut commercials from &#039;$origFile&#039;&amp;quot; | tee -a $dvrPostLog&lt;br /&gt;
        $comProc --lockfile=/tmp/comchap.lock --comskip-ini=/etc/comskip.ini --comskip=$comskip --comskip=$comskip &amp;quot;$origFile&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
#Pull CC from file to SRT file&lt;br /&gt;
#echo &amp;quot;`date &#039;+%Y-%m-%d %H:%M:%S&#039;` Pulling Closed captions from &#039;$origFile&#039; to SRT file&amp;quot; | tee -a $dvrPostLog&lt;br /&gt;
#/usr/bin/ccextractor &amp;quot;$origFile&amp;quot; -o &amp;quot;$tmpSrt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Encode file to H.265/HEVC with NVIDIA HW as mp4 using ffmpeg&lt;br /&gt;
echo &amp;quot;`date &#039;+%Y-%m-%d %H:%M:%S&#039;` Re-encoding &#039;$origFile&#039; to mp4 file&amp;quot; | tee -a $dvrPostLog&lt;br /&gt;
while [ $tryCount -ne 0 ]&lt;br /&gt;
do&lt;br /&gt;
         echo -e &amp;quot;$ffmpegProc -nostdin -hide_banner -hwaccel_output_format cuda -i &amp;quot;$origFile&amp;quot; -ignore_unknown -acodec copy -scodec copy -c:v hevc_nvenc -preset medium &amp;quot;$tgtFile&amp;quot;&amp;quot; | tee -a $dvrPostLog&lt;br /&gt;
         #$ffmpegProc -nostdin -hide_banner -hwaccel_output_format cuda -i &amp;quot;$origFile&amp;quot; -ignore_unknown -acodec copy -scodec copy -c:v hevc_nvenc -preset medium &amp;quot;$tgtFile&amp;quot;&lt;br /&gt;
         $ffmpegProc -nostdin -hide_banner -hwaccel_output_format cuda -i &amp;quot;$origFile&amp;quot; -ignore_unknown -acodec copy -scodec copy -c:v hevc_nvenc -preset medium &amp;quot;$tgtFile&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        if [[ $? -ne 0 || ! -s &amp;quot;$tgtFile&amp;quot; ]];&lt;br /&gt;
        then&lt;br /&gt;
                rm -f &amp;quot;$tgtFile&amp;quot;&lt;br /&gt;
                echo &amp;quot;Trying $tryCount more time(s)...&amp;quot; | tee -a $dvrPostLog&lt;br /&gt;
                ((tryCount=tryCount-1))&lt;br /&gt;
                sleep 15&lt;br /&gt;
        else&lt;br /&gt;
                ((tryCount=0))&lt;br /&gt;
                failed=0&lt;br /&gt;
        fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
if [ $failed -eq 1 ];&lt;br /&gt;
then&lt;br /&gt;
        echo &amp;quot;`date &#039;+%Y-%m-%d %H:%M:%S&#039;` Re-encoding &#039;$origFile&#039; to mp4 file failed!&amp;quot; | tee -a $dvrPostLog&lt;br /&gt;
        echo &amp;quot;`date &#039;+%Y-%m-%d %H:%M:%S&#039;` Moving &amp;quot;$origFile&amp;quot;* to &amp;quot;$origDir&amp;quot; &amp;quot; | tee -a $dvrPostLog&lt;br /&gt;
        mv   &amp;quot;$origFile&amp;quot; &amp;quot;$origDir&amp;quot;     #Conversion failed&lt;br /&gt;
&lt;br /&gt;
        #Remove lock file&lt;br /&gt;
        echo &amp;quot;`date &#039;+%Y-%m-%d %H:%M:%S&#039;` Done processing &#039;$origFile&#039; removing lock&amp;quot; | tee -a $dvrPostLog&lt;br /&gt;
        rm -f $lockFile&lt;br /&gt;
&lt;br /&gt;
        exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
#Trim off first minute&lt;br /&gt;
#echo &amp;quot;`date &#039;+%Y-%m-%d %H:%M:%S&#039;` Remove first 60 sec of file&amp;quot; | tee -a $dvrPostLog&lt;br /&gt;
#/opt/emby-server/bin/ffmpeg -ss 00:01:00 -i &amp;quot;$tmpEncode&amp;quot; -vcodec copy -acodec copy -scodec copy &amp;quot;$tmpEncode2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Remove SRT file&lt;br /&gt;
#echo &amp;quot;`date &#039;+%Y-%m-%d %H:%M:%S&#039;` Remove SRT file&amp;quot; | tee -a $dvrPostLog&lt;br /&gt;
#rm -f &amp;quot;$tmpSrt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Calculate mp4 size&lt;br /&gt;
if [ -f &amp;quot;$tgtFile&amp;quot; ];&lt;br /&gt;
then&lt;br /&gt;
        newFilesize=`stat -c %s &amp;quot;$tgtFile&amp;quot;`&lt;br /&gt;
        mp4ratio=$(( 100*&amp;quot;$newFilesize&amp;quot;/&amp;quot;$origFilesize&amp;quot; ))&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
#Delete .ts file h265 mp4 is typically 18~20% original&lt;br /&gt;
if [[ $failed -eq 0 &amp;amp;&amp;amp; $mp4ratio -ge $tgtRatio ]];&lt;br /&gt;
then&lt;br /&gt;
        #Mark commercials as chapters, must be done after conversion to mp4&lt;br /&gt;
        if [ &amp;quot;$comProc&amp;quot; = &amp;quot;comchap&amp;quot; ];&lt;br /&gt;
        then&lt;br /&gt;
                echo &amp;quot;`date &#039;+%Y-%m-%d %H:%M:%S&#039;` cut from &#039;$origFile&#039;&amp;quot; | tee -a $dvrPostLog&lt;br /&gt;
                mv &amp;quot;$tgtFile&amp;quot; &amp;quot;$tgtFile&amp;quot;-tmp.mp4&lt;br /&gt;
                $comProc --verbose --lockfile=/tmp/comchap.lock --comskip-ini=/etc/comskip.ini &amp;quot;$tgtFile&amp;quot;-tmp.mp4  &amp;gt; /tmp/comchap.log&lt;br /&gt;
                #Comchap seems to have a knack for minor corruption that prtevents playing. Quick repair&lt;br /&gt;
                $ffmpegProc -i &amp;quot;$tgtFile&amp;quot;-tmp.mp4 -c copy &amp;quot;$tgtFile&amp;quot;&lt;br /&gt;
                rm -f &amp;quot;$tgtFile&amp;quot;-tmp.mp4&lt;br /&gt;
        fi&lt;br /&gt;
&lt;br /&gt;
        #mv   &amp;quot;$origFile&amp;quot; &amp;quot;$origFile&amp;quot;-orig | tee -a $dvrPostLog #backup copy&lt;br /&gt;
&lt;br /&gt;
        if [ &amp;quot;$USER&amp;quot; = &amp;quot;$svcUser&amp;quot; ];            #Don&#039;t move Season/series if running manually&lt;br /&gt;
        then&lt;br /&gt;
                echo &amp;quot;`date &#039;+%Y-%m-%d %H:%M:%S&#039;` Moving &amp;quot;$tgtFile&amp;quot; to &amp;quot;$origDir/&amp;quot; &amp;quot; | tee -a $dvrPostLog&lt;br /&gt;
                #mv &amp;quot;$origFile-orig&amp;quot; &amp;quot;$origDir&amp;quot; | tee -a $dvrPostLog&lt;br /&gt;
                mv &amp;quot;$tgtFile&amp;quot; &amp;quot;$origDir&amp;quot; | tee -a $dvrPostLog&lt;br /&gt;
                echo -e &amp;quot;Removing $origFile&amp;quot; | tee -a $dvrPostLog&lt;br /&gt;
                rm &amp;quot;$origFile&amp;quot; | tee -a $dvrPostLog&lt;br /&gt;
        fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
#Remove lock file&lt;br /&gt;
echo &amp;quot;`date &#039;+%Y-%m-%d %H:%M:%S&#039;` Done processing &#039;$origFile&#039; removing lock&amp;quot; | tee -a $dvrPostLog&lt;br /&gt;
rm -f $lockFile&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Wireless&amp;diff=2719</id>
		<title>Wireless</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Wireless&amp;diff=2719"/>
		<updated>2023-04-11T20:07:04Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: /* RTL8822BU USB adapter driver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== RTL8822BU USB adapter driver ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo git clone https://github.com/EntropicEffect/rtl8822bu.git &lt;br /&gt;
cd rtl8822bu&lt;br /&gt;
sudo nano Makefile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Update lines 100 and 101 to this and save the file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONFIG_PLATFORM_I386_PC = n  &lt;br /&gt;
CONFIG_PLATFORM_ARM_RPI = y &lt;br /&gt;
sudo apt-get install raspberrypi-kernel-headers&lt;br /&gt;
sudo make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*/etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev&lt;br /&gt;
update_config=1&lt;br /&gt;
&lt;br /&gt;
network={&lt;br /&gt;
ssid=&amp;quot;SSID&amp;quot;&lt;br /&gt;
psk=&amp;quot;PASSWORD&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Protocol type can be: RSN (for WP2) and WPA (for WPA1)&lt;br /&gt;
proto=RSN&lt;br /&gt;
&lt;br /&gt;
# Key management type can be: WPA-PSK or WPA-EAP (Pre-Shared or Enterprise)&lt;br /&gt;
key_mgmt=WPA-PSK&lt;br /&gt;
&lt;br /&gt;
# Pairwise can be CCMP or TKIP (for WPA2 or WPA1)&lt;br /&gt;
pairwise=CCMP&lt;br /&gt;
&lt;br /&gt;
#Authorization option should be OPEN for both WPA1/WPA2 (in less commonly used are SHARED and LEAP)&lt;br /&gt;
auth_alg=OPEN&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*cat /etc/network/interfaces.d/wlan0&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
allow-hotplug wlan0&lt;br /&gt;
iface wlan0 inet dhcp&lt;br /&gt;
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
iface default inet dhcp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wireless WebGui ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/billz/raspap-webgui&lt;br /&gt;
Prerequisites&lt;br /&gt;
&lt;br /&gt;
You need to install some extra software in order for the Raspberry Pi to act as a WiFi router and access point. If all you&#039;re interested in is configuring your RPi as a client on an existing WiFi network, you can skip this step.&lt;br /&gt;
&lt;br /&gt;
There are many guides available to help you select a WiFi adapter, install a compatible driver, configure HostAPD and so on. The details are outside the scope of this project, although I&#039;ve had consistently good results with the Edimax Wireless 802.11b/g/n nano USB adapter – it&#039;s small, cheap and easy to work with.&lt;br /&gt;
&lt;br /&gt;
To configure your RPi as a WiFi router, either of these resources will start you on the right track:&lt;br /&gt;
&lt;br /&gt;
How To : Use The Raspberry Pi As A Wireless Access Point/Router Part 1&lt;br /&gt;
How-To: Turn a Raspberry Pi into a WiFi router (uses isc-dhcp-server instead of dnsmasq)&lt;br /&gt;
After you complete the intial setup, you&#039;ll be able to administer these services using the web UI.&lt;br /&gt;
&lt;br /&gt;
Installation&lt;br /&gt;
&lt;br /&gt;
Start off by installing lighttpd and php5.&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install lighttpd php5-cgi&lt;br /&gt;
After that, enable PHP for lighttpd and restart it for the settings to take effect.&lt;br /&gt;
&lt;br /&gt;
 sudo lighty-enable-mod fastcgi-php&lt;br /&gt;
 /etc/init.d/lighttpd restart&lt;br /&gt;
Now comes the fun part. For security reasons, the www-data user which lighttpd runs under is not allowed to start or stop daemons, or run commands like ifdown and ifup, all of which we want our page to do. So what I have done is added the www-data user to the sudoers file, but with restrictions on what commands the user can run. Add the following to the end of /etc/sudoers:&lt;br /&gt;
&lt;br /&gt;
 www-data ALL=(ALL) NOPASSWD:/sbin/ifdown wlan0,/sbin/ifup wlan0,/bin/cat&lt;br /&gt;
 /etc/wpa_supplicant/wpa_supplicant.conf,/bin/cp /tmp/wifidata &lt;br /&gt;
 /etc/wpa_supplicant/wpa_supplicant.conf,/sbin/wpa_cli scan_results,&lt;br /&gt;
 /sbin/wpa_cli scan,/bin/cp /tmp/hostapddata /etc/hostapd/hostapd.conf,&lt;br /&gt;
 /etc/init.d/hostapd start,/etc/init.d/hostapd stop,/etc/init.d/dnsmasq start,&lt;br /&gt;
 /etc/init.d/dnsmasq stop,/bin/cp /tmp/dhcpddata /etc/dnsmasq.conf&lt;br /&gt;
Once those modifications are done, git clone the files to /var/www.&lt;br /&gt;
&lt;br /&gt;
 sudo git clone https://github.com/billz/raspap-webgui /var/www&lt;br /&gt;
Set the files ownership to www-data user.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www&lt;br /&gt;
Reboot and it should be up and running!&lt;br /&gt;
&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
Please note that these are only UI&#039;s for now. If there&#039;s enough interest I&#039;ll complete the funtionality for these optional admin screens.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Wireless&amp;diff=2718</id>
		<title>Wireless</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Wireless&amp;diff=2718"/>
		<updated>2023-04-11T20:06:28Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: /* RTL8822BU USB adapter driver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== RTL8822BU USB adapter driver ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo git clone https://github.com/EntropicEffect/rtl8822bu.git &lt;br /&gt;
cd rtl8822bu&lt;br /&gt;
sudo nano Makefile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Update lines 100 and 101 to this and save the file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONFIG_PLATFORM_I386_PC = n  &lt;br /&gt;
CONFIG_PLATFORM_ARM_RPI = y &lt;br /&gt;
sudo apt-get install raspberrypi-kernel-headers&lt;br /&gt;
sudo make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*/etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev&lt;br /&gt;
update_config=1&lt;br /&gt;
&lt;br /&gt;
network={&lt;br /&gt;
ssid=&amp;quot;SSID&amp;quot;&lt;br /&gt;
psk=&amp;quot;PASSWORD&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Protocol type can be: RSN (for WP2) and WPA (for WPA1)&lt;br /&gt;
proto=RSN&lt;br /&gt;
&lt;br /&gt;
# Key management type can be: WPA-PSK or WPA-EAP (Pre-Shared or Enterprise)&lt;br /&gt;
key_mgmt=WPA-PSK&lt;br /&gt;
&lt;br /&gt;
# Pairwise can be CCMP or TKIP (for WPA2 or WPA1)&lt;br /&gt;
pairwise=CCMP&lt;br /&gt;
&lt;br /&gt;
#Authorization option should be OPEN for both WPA1/WPA2 (in less commonly used are SHARED and LEAP)&lt;br /&gt;
auth_alg=OPEN&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*cat /etc/network/interfaces.d/wlan0 &lt;br /&gt;
allow-hotplug wlan0&lt;br /&gt;
iface wlan0 inet dhcp&lt;br /&gt;
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
iface default inet dhcp&lt;br /&gt;
&lt;br /&gt;
== Wireless WebGui ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/billz/raspap-webgui&lt;br /&gt;
Prerequisites&lt;br /&gt;
&lt;br /&gt;
You need to install some extra software in order for the Raspberry Pi to act as a WiFi router and access point. If all you&#039;re interested in is configuring your RPi as a client on an existing WiFi network, you can skip this step.&lt;br /&gt;
&lt;br /&gt;
There are many guides available to help you select a WiFi adapter, install a compatible driver, configure HostAPD and so on. The details are outside the scope of this project, although I&#039;ve had consistently good results with the Edimax Wireless 802.11b/g/n nano USB adapter – it&#039;s small, cheap and easy to work with.&lt;br /&gt;
&lt;br /&gt;
To configure your RPi as a WiFi router, either of these resources will start you on the right track:&lt;br /&gt;
&lt;br /&gt;
How To : Use The Raspberry Pi As A Wireless Access Point/Router Part 1&lt;br /&gt;
How-To: Turn a Raspberry Pi into a WiFi router (uses isc-dhcp-server instead of dnsmasq)&lt;br /&gt;
After you complete the intial setup, you&#039;ll be able to administer these services using the web UI.&lt;br /&gt;
&lt;br /&gt;
Installation&lt;br /&gt;
&lt;br /&gt;
Start off by installing lighttpd and php5.&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install lighttpd php5-cgi&lt;br /&gt;
After that, enable PHP for lighttpd and restart it for the settings to take effect.&lt;br /&gt;
&lt;br /&gt;
 sudo lighty-enable-mod fastcgi-php&lt;br /&gt;
 /etc/init.d/lighttpd restart&lt;br /&gt;
Now comes the fun part. For security reasons, the www-data user which lighttpd runs under is not allowed to start or stop daemons, or run commands like ifdown and ifup, all of which we want our page to do. So what I have done is added the www-data user to the sudoers file, but with restrictions on what commands the user can run. Add the following to the end of /etc/sudoers:&lt;br /&gt;
&lt;br /&gt;
 www-data ALL=(ALL) NOPASSWD:/sbin/ifdown wlan0,/sbin/ifup wlan0,/bin/cat&lt;br /&gt;
 /etc/wpa_supplicant/wpa_supplicant.conf,/bin/cp /tmp/wifidata &lt;br /&gt;
 /etc/wpa_supplicant/wpa_supplicant.conf,/sbin/wpa_cli scan_results,&lt;br /&gt;
 /sbin/wpa_cli scan,/bin/cp /tmp/hostapddata /etc/hostapd/hostapd.conf,&lt;br /&gt;
 /etc/init.d/hostapd start,/etc/init.d/hostapd stop,/etc/init.d/dnsmasq start,&lt;br /&gt;
 /etc/init.d/dnsmasq stop,/bin/cp /tmp/dhcpddata /etc/dnsmasq.conf&lt;br /&gt;
Once those modifications are done, git clone the files to /var/www.&lt;br /&gt;
&lt;br /&gt;
 sudo git clone https://github.com/billz/raspap-webgui /var/www&lt;br /&gt;
Set the files ownership to www-data user.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www&lt;br /&gt;
Reboot and it should be up and running!&lt;br /&gt;
&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
Please note that these are only UI&#039;s for now. If there&#039;s enough interest I&#039;ll complete the funtionality for these optional admin screens.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Wireless&amp;diff=2717</id>
		<title>Wireless</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Wireless&amp;diff=2717"/>
		<updated>2023-04-11T20:04:52Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: /* RTL8822BU USB adapter driver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== RTL8822BU USB adapter driver ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo git clone https://github.com/EntropicEffect/rtl8822bu.git &lt;br /&gt;
cd rtl8822bu&lt;br /&gt;
sudo nano Makefile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Update lines 100 and 101 to this and save the file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONFIG_PLATFORM_I386_PC = n  &lt;br /&gt;
CONFIG_PLATFORM_ARM_RPI = y &lt;br /&gt;
sudo apt-get install raspberrypi-kernel-headers&lt;br /&gt;
sudo make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*/etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev&lt;br /&gt;
update_config=1&lt;br /&gt;
&lt;br /&gt;
network={&lt;br /&gt;
ssid=&amp;quot;SSID&amp;quot;&lt;br /&gt;
psk=&amp;quot;PASSWORD&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Protocol type can be: RSN (for WP2) and WPA (for WPA1)&lt;br /&gt;
proto=RSN&lt;br /&gt;
&lt;br /&gt;
# Key management type can be: WPA-PSK or WPA-EAP (Pre-Shared or Enterprise)&lt;br /&gt;
key_mgmt=WPA-PSK&lt;br /&gt;
&lt;br /&gt;
# Pairwise can be CCMP or TKIP (for WPA2 or WPA1)&lt;br /&gt;
pairwise=CCMP&lt;br /&gt;
&lt;br /&gt;
#Authorization option should be OPEN for both WPA1/WPA2 (in less commonly used are SHARED and LEAP)&lt;br /&gt;
auth_alg=OPEN&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wireless WebGui ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/billz/raspap-webgui&lt;br /&gt;
Prerequisites&lt;br /&gt;
&lt;br /&gt;
You need to install some extra software in order for the Raspberry Pi to act as a WiFi router and access point. If all you&#039;re interested in is configuring your RPi as a client on an existing WiFi network, you can skip this step.&lt;br /&gt;
&lt;br /&gt;
There are many guides available to help you select a WiFi adapter, install a compatible driver, configure HostAPD and so on. The details are outside the scope of this project, although I&#039;ve had consistently good results with the Edimax Wireless 802.11b/g/n nano USB adapter – it&#039;s small, cheap and easy to work with.&lt;br /&gt;
&lt;br /&gt;
To configure your RPi as a WiFi router, either of these resources will start you on the right track:&lt;br /&gt;
&lt;br /&gt;
How To : Use The Raspberry Pi As A Wireless Access Point/Router Part 1&lt;br /&gt;
How-To: Turn a Raspberry Pi into a WiFi router (uses isc-dhcp-server instead of dnsmasq)&lt;br /&gt;
After you complete the intial setup, you&#039;ll be able to administer these services using the web UI.&lt;br /&gt;
&lt;br /&gt;
Installation&lt;br /&gt;
&lt;br /&gt;
Start off by installing lighttpd and php5.&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install lighttpd php5-cgi&lt;br /&gt;
After that, enable PHP for lighttpd and restart it for the settings to take effect.&lt;br /&gt;
&lt;br /&gt;
 sudo lighty-enable-mod fastcgi-php&lt;br /&gt;
 /etc/init.d/lighttpd restart&lt;br /&gt;
Now comes the fun part. For security reasons, the www-data user which lighttpd runs under is not allowed to start or stop daemons, or run commands like ifdown and ifup, all of which we want our page to do. So what I have done is added the www-data user to the sudoers file, but with restrictions on what commands the user can run. Add the following to the end of /etc/sudoers:&lt;br /&gt;
&lt;br /&gt;
 www-data ALL=(ALL) NOPASSWD:/sbin/ifdown wlan0,/sbin/ifup wlan0,/bin/cat&lt;br /&gt;
 /etc/wpa_supplicant/wpa_supplicant.conf,/bin/cp /tmp/wifidata &lt;br /&gt;
 /etc/wpa_supplicant/wpa_supplicant.conf,/sbin/wpa_cli scan_results,&lt;br /&gt;
 /sbin/wpa_cli scan,/bin/cp /tmp/hostapddata /etc/hostapd/hostapd.conf,&lt;br /&gt;
 /etc/init.d/hostapd start,/etc/init.d/hostapd stop,/etc/init.d/dnsmasq start,&lt;br /&gt;
 /etc/init.d/dnsmasq stop,/bin/cp /tmp/dhcpddata /etc/dnsmasq.conf&lt;br /&gt;
Once those modifications are done, git clone the files to /var/www.&lt;br /&gt;
&lt;br /&gt;
 sudo git clone https://github.com/billz/raspap-webgui /var/www&lt;br /&gt;
Set the files ownership to www-data user.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www&lt;br /&gt;
Reboot and it should be up and running!&lt;br /&gt;
&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
Please note that these are only UI&#039;s for now. If there&#039;s enough interest I&#039;ll complete the funtionality for these optional admin screens.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Wireless&amp;diff=2716</id>
		<title>Wireless</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Wireless&amp;diff=2716"/>
		<updated>2023-04-11T17:34:09Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== RTL8822BU USB adapter driver ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo git clone https://github.com/EntropicEffect/rtl8822bu.git &lt;br /&gt;
cd rtl8822bu&lt;br /&gt;
sudo nano Makefile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Update lines 100 and 101 to this and save the file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONFIG_PLATFORM_I386_PC = n  &lt;br /&gt;
CONFIG_PLATFORM_ARM_RPI = y &lt;br /&gt;
sudo apt-get install raspberrypi-kernel-headers&lt;br /&gt;
sudo make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wireless WebGui ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/billz/raspap-webgui&lt;br /&gt;
Prerequisites&lt;br /&gt;
&lt;br /&gt;
You need to install some extra software in order for the Raspberry Pi to act as a WiFi router and access point. If all you&#039;re interested in is configuring your RPi as a client on an existing WiFi network, you can skip this step.&lt;br /&gt;
&lt;br /&gt;
There are many guides available to help you select a WiFi adapter, install a compatible driver, configure HostAPD and so on. The details are outside the scope of this project, although I&#039;ve had consistently good results with the Edimax Wireless 802.11b/g/n nano USB adapter – it&#039;s small, cheap and easy to work with.&lt;br /&gt;
&lt;br /&gt;
To configure your RPi as a WiFi router, either of these resources will start you on the right track:&lt;br /&gt;
&lt;br /&gt;
How To : Use The Raspberry Pi As A Wireless Access Point/Router Part 1&lt;br /&gt;
How-To: Turn a Raspberry Pi into a WiFi router (uses isc-dhcp-server instead of dnsmasq)&lt;br /&gt;
After you complete the intial setup, you&#039;ll be able to administer these services using the web UI.&lt;br /&gt;
&lt;br /&gt;
Installation&lt;br /&gt;
&lt;br /&gt;
Start off by installing lighttpd and php5.&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install lighttpd php5-cgi&lt;br /&gt;
After that, enable PHP for lighttpd and restart it for the settings to take effect.&lt;br /&gt;
&lt;br /&gt;
 sudo lighty-enable-mod fastcgi-php&lt;br /&gt;
 /etc/init.d/lighttpd restart&lt;br /&gt;
Now comes the fun part. For security reasons, the www-data user which lighttpd runs under is not allowed to start or stop daemons, or run commands like ifdown and ifup, all of which we want our page to do. So what I have done is added the www-data user to the sudoers file, but with restrictions on what commands the user can run. Add the following to the end of /etc/sudoers:&lt;br /&gt;
&lt;br /&gt;
 www-data ALL=(ALL) NOPASSWD:/sbin/ifdown wlan0,/sbin/ifup wlan0,/bin/cat&lt;br /&gt;
 /etc/wpa_supplicant/wpa_supplicant.conf,/bin/cp /tmp/wifidata &lt;br /&gt;
 /etc/wpa_supplicant/wpa_supplicant.conf,/sbin/wpa_cli scan_results,&lt;br /&gt;
 /sbin/wpa_cli scan,/bin/cp /tmp/hostapddata /etc/hostapd/hostapd.conf,&lt;br /&gt;
 /etc/init.d/hostapd start,/etc/init.d/hostapd stop,/etc/init.d/dnsmasq start,&lt;br /&gt;
 /etc/init.d/dnsmasq stop,/bin/cp /tmp/dhcpddata /etc/dnsmasq.conf&lt;br /&gt;
Once those modifications are done, git clone the files to /var/www.&lt;br /&gt;
&lt;br /&gt;
 sudo git clone https://github.com/billz/raspap-webgui /var/www&lt;br /&gt;
Set the files ownership to www-data user.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www&lt;br /&gt;
Reboot and it should be up and running!&lt;br /&gt;
&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
Please note that these are only UI&#039;s for now. If there&#039;s enough interest I&#039;ll complete the funtionality for these optional admin screens.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Ubuntu_Server_Setup&amp;diff=2715</id>
		<title>Ubuntu Server Setup</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Ubuntu_Server_Setup&amp;diff=2715"/>
		<updated>2023-01-13T00:35:26Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page defines all the services that I run on my home server. This is mainly a recovery guide in the case that it [http://www.urbandictionary.com/define.php?term=poop poops] itself.&lt;br /&gt;
&lt;br /&gt;
* APACHE&lt;br /&gt;
* HDDTEMP&lt;br /&gt;
* DNSMASQ&lt;br /&gt;
* SQUID&lt;br /&gt;
* MBMON&lt;br /&gt;
* [[Time_Machine|IETD]]&lt;br /&gt;
* [[Samba|SMBD]]&lt;br /&gt;
* [[Mediatomb|MEDIATOMB]]&lt;br /&gt;
* [[PulseAudio|PULSEAUDIO]]&lt;br /&gt;
* [[Mt-daapd|MT-DAAPD]] &#039;&#039;&amp;lt;-- iTunes 10 incompatible&#039;&#039;&lt;br /&gt;
* &amp;lt;del&amp;gt;PROFTPD&amp;lt;/del&amp;gt; &#039;&#039;&amp;lt;-- replaced by using sftp&#039;&#039;&lt;br /&gt;
* [http://www.intermapper.com/download-intermapper INTERMAPPER]&lt;br /&gt;
* [[MPD]]&lt;br /&gt;
* [[TFTP|TFTPD]]&lt;br /&gt;
* NTPD&lt;br /&gt;
* [[Syslog|SYSLOGD]]&lt;br /&gt;
* [[SNMP|SNMPD]]&lt;br /&gt;
* [[IPLIST]]&lt;br /&gt;
&lt;br /&gt;
How to clean up(purge) uninstalled packages&lt;br /&gt;
 dpkg --purge $(dpkg --list | grep ^rc | awk &#039;{ print $2; }&#039;)&lt;br /&gt;
&lt;br /&gt;
Find best apt repos&lt;br /&gt;
 pip install apt-select&lt;br /&gt;
&lt;br /&gt;
 apt-select -t 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Pin Kernel&amp;lt;/h4&amp;gt;&lt;br /&gt;
This is allow apt-get upgrades without upgrading kernel versions&lt;br /&gt;
*/etc/apt/preferences&lt;br /&gt;
 Package: linux-generic linux-headers-generic linux-image-generic linux-restricted-modules-generic&lt;br /&gt;
 Pin: version 3.2.0.29.31&lt;br /&gt;
 Pin-Priority: 1001&lt;br /&gt;
* apt-cache policy linux-generic&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;How to set default kernel using GRUB2&amp;lt;/h4&amp;gt;&lt;br /&gt;
 #grep menuentry /boot/grub/grub.cfg &lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-12-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-12-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-11-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-11-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-8-generic-pae&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
 menuentry &#039;Ubuntu, with Linux 2.6.38-8-generic-pae (recovery mode)&#039; --class ubuntu --class gnu-linux --class gnu --class os {&lt;br /&gt;
&lt;br /&gt;
* If the following command outputs a submenu, then you have to prepend &amp;quot;Previous Linux versions&amp;gt;&amp;quot; ahead of your kernel name&lt;br /&gt;
 #grep submenu /boot/grub/grub.cfg&lt;br /&gt;
 submenu &amp;quot;Previous Linux versions&amp;quot; {&lt;br /&gt;
&lt;br /&gt;
*/etc/default/grub&lt;br /&gt;
 GRUB_DEFAULT=&amp;quot;&#039;&#039;&#039;Previous Linux versions&amp;gt;&#039;&#039;&#039;Ubuntu, with Linux 2.6.38-11-generic-pae&amp;quot;&lt;br /&gt;
if you don&#039;t set the Previous Linux versions, it doesn&#039;t go through the menu to find it..&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Network Performance fix&amp;lt;/h4&amp;gt;&lt;br /&gt;
 # echo &#039;net.core.wmem_max=12582912&#039; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 # echo &#039;net.core.rmem_max=12582912&#039; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
* PathTest download links&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Windows_32-bit.zip&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Linux_64-bit.zip&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.appneta.com/resources/pathtest-files/Linux_32-bit.zip&lt;br /&gt;
* Thanks to http://www.cyberciti.biz/faq/linux-tcp-tuning/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Speed testing &amp;lt;/h4&amp;gt;&lt;br /&gt;
 wget https://www.dropbox.com/s/afsvduxtyi5emth/bench.sh -O - -o /dev/null|bash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Network Performance Test&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
http://netalyzr.icsi.berkeley.edu/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Bash aliases&amp;lt;/h4&amp;gt;&lt;br /&gt;
 alias apt-get=&#039;apt-get -o Acquire::ForceIPv4=true&#039;&lt;br /&gt;
 alias dmesg=&#039;dmesg -T&#039;&lt;br /&gt;
 alias wget=&#039;wget -4&#039;&lt;br /&gt;
 alias curl=&#039;curl -4&#039;&lt;br /&gt;
 alias sudo=&#039;sudo env PATH=$PATH XBMC_HOME=&amp;quot;/opt/plexhometheater/share/XBMC&amp;quot; &#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Wireguard&amp;diff=2714</id>
		<title>Wireguard</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Wireguard&amp;diff=2714"/>
		<updated>2023-01-01T19:14:28Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: /* Pfsense Wireguard */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Namespace VPN =&lt;br /&gt;
Based upon https://hurlster.com/wiki/index.php/Namespace&lt;br /&gt;
* init.d script&amp;lt;br&amp;gt;&lt;br /&gt;
This init.d script creates a linux namespace (vpn) and builds a point to point interface between global namespace to (vpn) namespace for monitoring/polling.&amp;lt;br&amp;gt;&lt;br /&gt;
This script then can fire up a specific process to be isolated to the namespace for security purposes.&lt;br /&gt;
* /usr/local/sbin/netns&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
NETNS_NAME=&amp;quot;vpn&amp;quot;&lt;br /&gt;
DEV_NAME=&amp;quot;wg2&amp;quot;&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
        start)&lt;br /&gt;
                NETNS_FILE=/var/run/netns/$NETNS_NAME&lt;br /&gt;
                # Create a new network namespace.&lt;br /&gt;
                if [ ! -f &amp;quot;$NETNS_FILE&amp;quot; ]; then&lt;br /&gt;
                        ip netns add $NETNS_NAME&lt;br /&gt;
                fi&lt;br /&gt;
                # Bring up NETNS Loopback interface&lt;br /&gt;
                ip -n $NETNS_NAME link set dev lo up&lt;br /&gt;
&lt;br /&gt;
                # Add MAIN virtual interface to talk to NETNS&lt;br /&gt;
                ip link add veth0 type veth peer name veth1&lt;br /&gt;
&lt;br /&gt;
                # Add IP to veth0&lt;br /&gt;
                ip addr add 10.1.1.1/30 dev veth0&lt;br /&gt;
&lt;br /&gt;
                sleep 1&lt;br /&gt;
&lt;br /&gt;
                # Bring MAIN veth0 up&lt;br /&gt;
                ip link set veth0 up&lt;br /&gt;
&lt;br /&gt;
                # Move veth1 in NETNS&lt;br /&gt;
                ip link set veth1 netns $NETNS_NAME&lt;br /&gt;
&lt;br /&gt;
                sleep 1&lt;br /&gt;
&lt;br /&gt;
                # Add IP to veth1 in NETNS&lt;br /&gt;
                ip -n $NETNS_NAME addr add 10.1.1.2/30 dev veth1&lt;br /&gt;
&lt;br /&gt;
                # Bring veth1 up in NETNS&lt;br /&gt;
                ip -n $NETNS_NAME link set veth1 up&lt;br /&gt;
                sleep 1&lt;br /&gt;
&lt;br /&gt;
                # Add NETNS route(s) back to MAIN&lt;br /&gt;
                ip -n $NETNS_NAME route add 192.168.0.0/24 via 10.1.1.1 dev veth1&lt;br /&gt;
&lt;br /&gt;
                # Create a Wireguard network interface in the default namespace.&lt;br /&gt;
                ip link add $DEV_NAME type wireguard&lt;br /&gt;
                sleep 1&lt;br /&gt;
                # Move the Wireguard interface to the network namespace.&lt;br /&gt;
                ip link set $DEV_NAME netns $NETNS_NAME&lt;br /&gt;
                sleep 1&lt;br /&gt;
&lt;br /&gt;
                # Load the Wireguard configuration.&lt;br /&gt;
                ip netns exec $NETNS_NAME wg setconf $DEV_NAME /etc/wireguard/$DEV_NAME.conf&lt;br /&gt;
&lt;br /&gt;
                # Bring up the Wireguard interface.&lt;br /&gt;
                ip -n $NETNS_NAME link set $DEV_NAME up&lt;br /&gt;
                echo &amp;quot;ip -n $NETNS_NAME link set $DEV_NAME up&amp;quot;&lt;br /&gt;
                sleep 1&lt;br /&gt;
&lt;br /&gt;
                # Set the IP address of the Wireguard interface from wirguard file&lt;br /&gt;
                ADDR=`grep Address /etc/wireguard/$DEV_NAME.conf | awk -F &amp;quot; = &amp;quot; &#039;{print $2}&#039;`&lt;br /&gt;
                #ip netns exec vpn $NETNS_NAME addr add 192.168.6.3/32 dev $DEV_NAME&lt;br /&gt;
                ip -n $NETNS_NAME addr add &amp;quot;$ADDR&amp;quot; dev $DEV_NAME&lt;br /&gt;
                echo &amp;quot;ip -n $NETNS_NAME addr add $ADDR dev $DEV_NAME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                # Make the Wireguard interface the default route.&lt;br /&gt;
                ip -n $NETNS_NAME route add default dev $DEV_NAME&lt;br /&gt;
&lt;br /&gt;
                # Set DNS servers&lt;br /&gt;
                DNS=`grep DNS /etc/wireguard/$DEV_NAME.conf | awk -F &amp;quot; = &amp;quot; &#039;{print $2}&#039;`&lt;br /&gt;
               mkdir -p /etc/netns/vpn&lt;br /&gt;
               echo &amp;quot;nameserver $DNS&amp;quot; &amp;gt; /etc/netns/vpn/resolv.conf&lt;br /&gt;
&lt;br /&gt;
                # Restart DELUGED&lt;br /&gt;
                #service deluged restart&lt;br /&gt;
                ;;&lt;br /&gt;
        stop)&lt;br /&gt;
                FOUND=$(grep $DEV_NAME /proc/net/dev)&lt;br /&gt;
                # Down NETNS wireguard interface&lt;br /&gt;
                if [ -n &amp;quot;$FOUND&amp;quot; ]; then&lt;br /&gt;
                        ip -n $NETNS_NAME link delete dev $DEV_NAME&lt;br /&gt;
                        echo &amp;quot;ip -n $NETNS_NAME link delete dev $DEV_NAME&amp;quot;&lt;br /&gt;
                fi&lt;br /&gt;
                # Down NETNS veth1 and delete&lt;br /&gt;
                #ip netns exec vpn ip link set veth1 down&lt;br /&gt;
                ip -n $NETNS_NAME link delete veth1&lt;br /&gt;
                echo &amp;quot;ip -n $NETNS_NAME link delete veth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                # Down MAIN veth0 and delete&lt;br /&gt;
                #ip link set veth0 down&lt;br /&gt;
                #ip link delete veth0&lt;br /&gt;
&lt;br /&gt;
                # Delete NETNS vpn&lt;br /&gt;
                ip netns delete $NETNS_NAME&lt;br /&gt;
                echo &amp;quot;ip netns delete $NETNS_NAME&amp;quot;&lt;br /&gt;
                ;;&lt;br /&gt;
*)&lt;br /&gt;
        echo &amp;quot;Usage: $0 {up|down}&amp;quot;&lt;br /&gt;
esac&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* /etc/systemd/system/netns.service &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Namespace VPN Manager&lt;br /&gt;
After=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
RemainAfterExit=true&lt;br /&gt;
ExecStart=/usr/local/sbin/netns start&lt;br /&gt;
ExecStop=/usr/local/sbin/netns stop&lt;br /&gt;
# Time to wait before forcefully stopped.&lt;br /&gt;
TimeoutStopSec=300&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Pfsense Wireguard =&lt;br /&gt;
* Install WG package&lt;br /&gt;
* Configure Tunnel interface&lt;br /&gt;
* SSH to command line&lt;br /&gt;
* Make directory for remote peer files and cd to it&lt;br /&gt;
* Run:&lt;br /&gt;
 wg genkey | tee privatekey | wg pubkey &amp;gt; publickey&lt;br /&gt;
 cat publickey&lt;br /&gt;
 cat privatekey&lt;br /&gt;
* Add peer configuration in GUI using the publickey shown above&lt;br /&gt;
* Back to CLI and create a client conf file&lt;br /&gt;
 # Description: iPhoneW privatekey&lt;br /&gt;
 [Interface]&lt;br /&gt;
 Address = 192.168.100.3/32&lt;br /&gt;
 DNS = 192.168.100.1&lt;br /&gt;
 PrivateKey = &#039;&#039;&#039;privatekey-from-CLI&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 # GatewayServer&lt;br /&gt;
 [Peer]&lt;br /&gt;
 PublicKey = &#039;&#039;&#039;publickey-from-server&#039;&#039;&#039;&lt;br /&gt;
 AllowedIPs = 192.168.100.3/32,0.0.0.0/0&lt;br /&gt;
 Endpoint = &#039;&#039;&#039;serverip:port&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Copy and Paste the contents of file to:&lt;br /&gt;
 https://www.wireguardconfig.com/qrcode&lt;br /&gt;
* Scan QR code with phone and connect!&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Wireguard&amp;diff=2713</id>
		<title>Wireguard</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Wireguard&amp;diff=2713"/>
		<updated>2023-01-01T19:13:43Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Namespace VPN =&lt;br /&gt;
Based upon https://hurlster.com/wiki/index.php/Namespace&lt;br /&gt;
* init.d script&amp;lt;br&amp;gt;&lt;br /&gt;
This init.d script creates a linux namespace (vpn) and builds a point to point interface between global namespace to (vpn) namespace for monitoring/polling.&amp;lt;br&amp;gt;&lt;br /&gt;
This script then can fire up a specific process to be isolated to the namespace for security purposes.&lt;br /&gt;
* /usr/local/sbin/netns&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
NETNS_NAME=&amp;quot;vpn&amp;quot;&lt;br /&gt;
DEV_NAME=&amp;quot;wg2&amp;quot;&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
        start)&lt;br /&gt;
                NETNS_FILE=/var/run/netns/$NETNS_NAME&lt;br /&gt;
                # Create a new network namespace.&lt;br /&gt;
                if [ ! -f &amp;quot;$NETNS_FILE&amp;quot; ]; then&lt;br /&gt;
                        ip netns add $NETNS_NAME&lt;br /&gt;
                fi&lt;br /&gt;
                # Bring up NETNS Loopback interface&lt;br /&gt;
                ip -n $NETNS_NAME link set dev lo up&lt;br /&gt;
&lt;br /&gt;
                # Add MAIN virtual interface to talk to NETNS&lt;br /&gt;
                ip link add veth0 type veth peer name veth1&lt;br /&gt;
&lt;br /&gt;
                # Add IP to veth0&lt;br /&gt;
                ip addr add 10.1.1.1/30 dev veth0&lt;br /&gt;
&lt;br /&gt;
                sleep 1&lt;br /&gt;
&lt;br /&gt;
                # Bring MAIN veth0 up&lt;br /&gt;
                ip link set veth0 up&lt;br /&gt;
&lt;br /&gt;
                # Move veth1 in NETNS&lt;br /&gt;
                ip link set veth1 netns $NETNS_NAME&lt;br /&gt;
&lt;br /&gt;
                sleep 1&lt;br /&gt;
&lt;br /&gt;
                # Add IP to veth1 in NETNS&lt;br /&gt;
                ip -n $NETNS_NAME addr add 10.1.1.2/30 dev veth1&lt;br /&gt;
&lt;br /&gt;
                # Bring veth1 up in NETNS&lt;br /&gt;
                ip -n $NETNS_NAME link set veth1 up&lt;br /&gt;
                sleep 1&lt;br /&gt;
&lt;br /&gt;
                # Add NETNS route(s) back to MAIN&lt;br /&gt;
                ip -n $NETNS_NAME route add 192.168.0.0/24 via 10.1.1.1 dev veth1&lt;br /&gt;
&lt;br /&gt;
                # Create a Wireguard network interface in the default namespace.&lt;br /&gt;
                ip link add $DEV_NAME type wireguard&lt;br /&gt;
                sleep 1&lt;br /&gt;
                # Move the Wireguard interface to the network namespace.&lt;br /&gt;
                ip link set $DEV_NAME netns $NETNS_NAME&lt;br /&gt;
                sleep 1&lt;br /&gt;
&lt;br /&gt;
                # Load the Wireguard configuration.&lt;br /&gt;
                ip netns exec $NETNS_NAME wg setconf $DEV_NAME /etc/wireguard/$DEV_NAME.conf&lt;br /&gt;
&lt;br /&gt;
                # Bring up the Wireguard interface.&lt;br /&gt;
                ip -n $NETNS_NAME link set $DEV_NAME up&lt;br /&gt;
                echo &amp;quot;ip -n $NETNS_NAME link set $DEV_NAME up&amp;quot;&lt;br /&gt;
                sleep 1&lt;br /&gt;
&lt;br /&gt;
                # Set the IP address of the Wireguard interface from wirguard file&lt;br /&gt;
                ADDR=`grep Address /etc/wireguard/$DEV_NAME.conf | awk -F &amp;quot; = &amp;quot; &#039;{print $2}&#039;`&lt;br /&gt;
                #ip netns exec vpn $NETNS_NAME addr add 192.168.6.3/32 dev $DEV_NAME&lt;br /&gt;
                ip -n $NETNS_NAME addr add &amp;quot;$ADDR&amp;quot; dev $DEV_NAME&lt;br /&gt;
                echo &amp;quot;ip -n $NETNS_NAME addr add $ADDR dev $DEV_NAME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                # Make the Wireguard interface the default route.&lt;br /&gt;
                ip -n $NETNS_NAME route add default dev $DEV_NAME&lt;br /&gt;
&lt;br /&gt;
                # Set DNS servers&lt;br /&gt;
                DNS=`grep DNS /etc/wireguard/$DEV_NAME.conf | awk -F &amp;quot; = &amp;quot; &#039;{print $2}&#039;`&lt;br /&gt;
               mkdir -p /etc/netns/vpn&lt;br /&gt;
               echo &amp;quot;nameserver $DNS&amp;quot; &amp;gt; /etc/netns/vpn/resolv.conf&lt;br /&gt;
&lt;br /&gt;
                # Restart DELUGED&lt;br /&gt;
                #service deluged restart&lt;br /&gt;
                ;;&lt;br /&gt;
        stop)&lt;br /&gt;
                FOUND=$(grep $DEV_NAME /proc/net/dev)&lt;br /&gt;
                # Down NETNS wireguard interface&lt;br /&gt;
                if [ -n &amp;quot;$FOUND&amp;quot; ]; then&lt;br /&gt;
                        ip -n $NETNS_NAME link delete dev $DEV_NAME&lt;br /&gt;
                        echo &amp;quot;ip -n $NETNS_NAME link delete dev $DEV_NAME&amp;quot;&lt;br /&gt;
                fi&lt;br /&gt;
                # Down NETNS veth1 and delete&lt;br /&gt;
                #ip netns exec vpn ip link set veth1 down&lt;br /&gt;
                ip -n $NETNS_NAME link delete veth1&lt;br /&gt;
                echo &amp;quot;ip -n $NETNS_NAME link delete veth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                # Down MAIN veth0 and delete&lt;br /&gt;
                #ip link set veth0 down&lt;br /&gt;
                #ip link delete veth0&lt;br /&gt;
&lt;br /&gt;
                # Delete NETNS vpn&lt;br /&gt;
                ip netns delete $NETNS_NAME&lt;br /&gt;
                echo &amp;quot;ip netns delete $NETNS_NAME&amp;quot;&lt;br /&gt;
                ;;&lt;br /&gt;
*)&lt;br /&gt;
        echo &amp;quot;Usage: $0 {up|down}&amp;quot;&lt;br /&gt;
esac&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* /etc/systemd/system/netns.service &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Namespace VPN Manager&lt;br /&gt;
After=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
RemainAfterExit=true&lt;br /&gt;
ExecStart=/usr/local/sbin/netns start&lt;br /&gt;
ExecStop=/usr/local/sbin/netns stop&lt;br /&gt;
# Time to wait before forcefully stopped.&lt;br /&gt;
TimeoutStopSec=300&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Pfsense Wireguard =&lt;br /&gt;
* Install WG package&lt;br /&gt;
* Configure Tunnel interface&lt;br /&gt;
* SSH to command line&lt;br /&gt;
* Make directory for remote peer files and cd to it&lt;br /&gt;
* Run:&lt;br /&gt;
 wg genkey | tee privatekey | wg pubkey &amp;gt; publickey&lt;br /&gt;
 cat publickey&lt;br /&gt;
* Add peer configuration in GUI using the publickey shown above&lt;br /&gt;
* Back to CLI and create a client conf file&lt;br /&gt;
 # Description: iPhoneW privatekey&lt;br /&gt;
 [Interface]&lt;br /&gt;
 Address = 192.168.100.3/32&lt;br /&gt;
 DNS = 192.168.100.1&lt;br /&gt;
 PrivateKey = &#039;&#039;&#039;privatekey-from-CLI&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 # GatewayServer&lt;br /&gt;
 [Peer]&lt;br /&gt;
 PublicKey = &#039;&#039;&#039;publickey-from-server&#039;&#039;&#039;&lt;br /&gt;
 AllowedIPs = 192.168.100.3/32,0.0.0.0/0&lt;br /&gt;
 Endpoint = &#039;&#039;&#039;serverip:port&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Copy and Paste the contents of file to:&lt;br /&gt;
 https://www.wireguardconfig.com/qrcode&lt;br /&gt;
* Scan QR code with phone and connect!&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Wireguard&amp;diff=2712</id>
		<title>Wireguard</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Wireguard&amp;diff=2712"/>
		<updated>2023-01-01T19:11:12Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Based upon https://hurlster.com/wiki/index.php/Namespace&lt;br /&gt;
* init.d script&amp;lt;br&amp;gt;&lt;br /&gt;
This init.d script creates a linux namespace (vpn) and builds a point to point interface between global namespace to (vpn) namespace for monitoring/polling.&amp;lt;br&amp;gt;&lt;br /&gt;
This script then can fire up a specific process to be isolated to the namespace for security purposes.&lt;br /&gt;
* /usr/local/sbin/netns&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
NETNS_NAME=&amp;quot;vpn&amp;quot;&lt;br /&gt;
DEV_NAME=&amp;quot;wg2&amp;quot;&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
        start)&lt;br /&gt;
                NETNS_FILE=/var/run/netns/$NETNS_NAME&lt;br /&gt;
                # Create a new network namespace.&lt;br /&gt;
                if [ ! -f &amp;quot;$NETNS_FILE&amp;quot; ]; then&lt;br /&gt;
                        ip netns add $NETNS_NAME&lt;br /&gt;
                fi&lt;br /&gt;
                # Bring up NETNS Loopback interface&lt;br /&gt;
                ip -n $NETNS_NAME link set dev lo up&lt;br /&gt;
&lt;br /&gt;
                # Add MAIN virtual interface to talk to NETNS&lt;br /&gt;
                ip link add veth0 type veth peer name veth1&lt;br /&gt;
&lt;br /&gt;
                # Add IP to veth0&lt;br /&gt;
                ip addr add 10.1.1.1/30 dev veth0&lt;br /&gt;
&lt;br /&gt;
                sleep 1&lt;br /&gt;
&lt;br /&gt;
                # Bring MAIN veth0 up&lt;br /&gt;
                ip link set veth0 up&lt;br /&gt;
&lt;br /&gt;
                # Move veth1 in NETNS&lt;br /&gt;
                ip link set veth1 netns $NETNS_NAME&lt;br /&gt;
&lt;br /&gt;
                sleep 1&lt;br /&gt;
&lt;br /&gt;
                # Add IP to veth1 in NETNS&lt;br /&gt;
                ip -n $NETNS_NAME addr add 10.1.1.2/30 dev veth1&lt;br /&gt;
&lt;br /&gt;
                # Bring veth1 up in NETNS&lt;br /&gt;
                ip -n $NETNS_NAME link set veth1 up&lt;br /&gt;
                sleep 1&lt;br /&gt;
&lt;br /&gt;
                # Add NETNS route(s) back to MAIN&lt;br /&gt;
                ip -n $NETNS_NAME route add 192.168.0.0/24 via 10.1.1.1 dev veth1&lt;br /&gt;
&lt;br /&gt;
                # Create a Wireguard network interface in the default namespace.&lt;br /&gt;
                ip link add $DEV_NAME type wireguard&lt;br /&gt;
                sleep 1&lt;br /&gt;
                # Move the Wireguard interface to the network namespace.&lt;br /&gt;
                ip link set $DEV_NAME netns $NETNS_NAME&lt;br /&gt;
                sleep 1&lt;br /&gt;
&lt;br /&gt;
                # Load the Wireguard configuration.&lt;br /&gt;
                ip netns exec $NETNS_NAME wg setconf $DEV_NAME /etc/wireguard/$DEV_NAME.conf&lt;br /&gt;
&lt;br /&gt;
                # Bring up the Wireguard interface.&lt;br /&gt;
                ip -n $NETNS_NAME link set $DEV_NAME up&lt;br /&gt;
                echo &amp;quot;ip -n $NETNS_NAME link set $DEV_NAME up&amp;quot;&lt;br /&gt;
                sleep 1&lt;br /&gt;
&lt;br /&gt;
                # Set the IP address of the Wireguard interface from wirguard file&lt;br /&gt;
                ADDR=`grep Address /etc/wireguard/$DEV_NAME.conf | awk -F &amp;quot; = &amp;quot; &#039;{print $2}&#039;`&lt;br /&gt;
                #ip netns exec vpn $NETNS_NAME addr add 192.168.6.3/32 dev $DEV_NAME&lt;br /&gt;
                ip -n $NETNS_NAME addr add &amp;quot;$ADDR&amp;quot; dev $DEV_NAME&lt;br /&gt;
                echo &amp;quot;ip -n $NETNS_NAME addr add $ADDR dev $DEV_NAME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                # Make the Wireguard interface the default route.&lt;br /&gt;
                ip -n $NETNS_NAME route add default dev $DEV_NAME&lt;br /&gt;
&lt;br /&gt;
                # Set DNS servers&lt;br /&gt;
                DNS=`grep DNS /etc/wireguard/$DEV_NAME.conf | awk -F &amp;quot; = &amp;quot; &#039;{print $2}&#039;`&lt;br /&gt;
               mkdir -p /etc/netns/vpn&lt;br /&gt;
               echo &amp;quot;nameserver $DNS&amp;quot; &amp;gt; /etc/netns/vpn/resolv.conf&lt;br /&gt;
&lt;br /&gt;
                # Restart DELUGED&lt;br /&gt;
                #service deluged restart&lt;br /&gt;
                ;;&lt;br /&gt;
        stop)&lt;br /&gt;
                FOUND=$(grep $DEV_NAME /proc/net/dev)&lt;br /&gt;
                # Down NETNS wireguard interface&lt;br /&gt;
                if [ -n &amp;quot;$FOUND&amp;quot; ]; then&lt;br /&gt;
                        ip -n $NETNS_NAME link delete dev $DEV_NAME&lt;br /&gt;
                        echo &amp;quot;ip -n $NETNS_NAME link delete dev $DEV_NAME&amp;quot;&lt;br /&gt;
                fi&lt;br /&gt;
                # Down NETNS veth1 and delete&lt;br /&gt;
                #ip netns exec vpn ip link set veth1 down&lt;br /&gt;
                ip -n $NETNS_NAME link delete veth1&lt;br /&gt;
                echo &amp;quot;ip -n $NETNS_NAME link delete veth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                # Down MAIN veth0 and delete&lt;br /&gt;
                #ip link set veth0 down&lt;br /&gt;
                #ip link delete veth0&lt;br /&gt;
&lt;br /&gt;
                # Delete NETNS vpn&lt;br /&gt;
                ip netns delete $NETNS_NAME&lt;br /&gt;
                echo &amp;quot;ip netns delete $NETNS_NAME&amp;quot;&lt;br /&gt;
                ;;&lt;br /&gt;
*)&lt;br /&gt;
        echo &amp;quot;Usage: $0 {up|down}&amp;quot;&lt;br /&gt;
esac&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* /etc/systemd/system/netns.service &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Namespace VPN Manager&lt;br /&gt;
After=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
RemainAfterExit=true&lt;br /&gt;
ExecStart=/usr/local/sbin/netns start&lt;br /&gt;
ExecStop=/usr/local/sbin/netns stop&lt;br /&gt;
# Time to wait before forcefully stopped.&lt;br /&gt;
TimeoutStopSec=300&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Pfsense Wireguard =&lt;br /&gt;
# Install WG package&lt;br /&gt;
* Configure Tunnel interface&lt;br /&gt;
* SSH to command line&lt;br /&gt;
* Make directory for remote peer files and cd to it&lt;br /&gt;
* Run:&lt;br /&gt;
 wg genkey | tee privatekey | wg pubkey &amp;gt; publickey&lt;br /&gt;
 cat publickey&lt;br /&gt;
* Add peer configuration in GUI using the publickey shown above&lt;br /&gt;
* Back to CLI and create a client conf file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Description: iPhoneW privatekey&lt;br /&gt;
[Interface]&lt;br /&gt;
Address = 192.168.100.3/32&lt;br /&gt;
DNS = 192.168.100.1&lt;br /&gt;
PrivateKey = &#039;&#039;&#039;privatekey-from-CLI&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# GatewayServer&lt;br /&gt;
[Peer]&lt;br /&gt;
PublicKey = &#039;&#039;&#039;publickey-from-server&#039;&#039;&#039;&lt;br /&gt;
AllowedIPs = 192.168.100.3/32,0.0.0.0/0&lt;br /&gt;
Endpoint = &#039;&#039;&#039;serverip&#039;&#039;&#039;:51821&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Copy and Paste the contents of file to:&lt;br /&gt;
 https://www.wireguardconfig.com/qrcode&lt;br /&gt;
* Scan QR code with phone and connect!&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Deluge&amp;diff=2711</id>
		<title>Deluge</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Deluge&amp;diff=2711"/>
		<updated>2022-11-19T20:06:45Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: /* Deluge Install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a howto for setting up Deluge on a headless Ubuntu(natty) server with RSS automatic feeds for TV shows with multiple trackers and fallback video qualities. The RSS feeder also will pull out the actual TV show file, rename it, and put it in a named directory structure.&lt;br /&gt;
&lt;br /&gt;
== Deluge Install ==&lt;br /&gt;
*Version 2.1.1 is in the repo as of this writing(20111011)&lt;br /&gt;
 sudo add-apt-repository ppa:deluge-team/ppa&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install deluged deluge-web&lt;br /&gt;
&lt;br /&gt;
=== Startup Script ===&lt;br /&gt;
I run deluge as root to make it easier, I know it&#039;s insecure, I don&#039;t care.&amp;lt;p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Default file ====&lt;br /&gt;
*nano /etc/default/deluge-daemon&lt;br /&gt;
 #Configuration for /etc/init.d/deluge-daemon&lt;br /&gt;
 &lt;br /&gt;
 # The init.d script will only run if this variable non-empty.&lt;br /&gt;
 DELUGED_USER=&amp;quot;root&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Should we run at startup?&lt;br /&gt;
 RUN_AT_STARTUP=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Create log directories&lt;br /&gt;
 mkdir -p /var/log/deluge/daemon&lt;br /&gt;
 mkdir -p /var/log/deluge/web&lt;br /&gt;
 chown -R user:user /var/log/deluge&lt;br /&gt;
&lt;br /&gt;
==== SystemD deluged ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Deluge Bittorrent Client Daemon&lt;br /&gt;
After=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=root&lt;br /&gt;
Group=root&lt;br /&gt;
UMask=000&lt;br /&gt;
&lt;br /&gt;
ExecStart=/bin/ip netns exec vpn /usr/bin/deluged -d -i 0.0.0.0 -u 10.1.1.2 -l /var/log/deluge/deluged.log -L info&lt;br /&gt;
&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
&lt;br /&gt;
# Configures the time to wait before service is stopped forcefully.&lt;br /&gt;
TimeoutStopSec=300&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SystemD deluge-web ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Deluge Bittorrent Client Web Interface&lt;br /&gt;
After=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=root&lt;br /&gt;
Group=root&lt;br /&gt;
UMask=027&lt;br /&gt;
ExecStart=/usr/bin/deluge-web -i 127.0.0.1 -l /var/log/deluge/deluge-web.log -L info -d&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Init.d file ====&lt;br /&gt;
*nano /etc/init.d/deluge-daemon&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 ### BEGIN INIT INFO&lt;br /&gt;
 # Provides:          deluge-daemon&lt;br /&gt;
 # Required-Start:    $local_fs $remote_fs&lt;br /&gt;
 # Required-Stop:     $local_fs $remote_fs&lt;br /&gt;
 # Should-Start:      $network&lt;br /&gt;
 # Should-Stop:       $network&lt;br /&gt;
 # Default-Start:     2 3 4 5&lt;br /&gt;
 # Default-Stop:      0 1 6&lt;br /&gt;
 # Short-Description: Daemonized version of deluge and webui.&lt;br /&gt;
 # Description:       Starts the deluge daemon with the user specified in&lt;br /&gt;
 #                    /etc/default/deluge-daemon.&lt;br /&gt;
 ### END INIT INFO&lt;br /&gt;
 &lt;br /&gt;
 # Author: Adolfo R. Brandes &lt;br /&gt;
 &lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 DESC=&amp;quot;Deluge Daemon&amp;quot;&lt;br /&gt;
 NAME1=&amp;quot;deluged&amp;quot;&lt;br /&gt;
 NAME2=&amp;quot;deluge&amp;quot;&lt;br /&gt;
 DAEMON1=/usr/bin/deluged&lt;br /&gt;
 DAEMON1_ARGS=&amp;quot;-d -L warning -l /var/log/deluge/daemon/warning.log&amp;quot;             # Consult `man deluged` for  more options&lt;br /&gt;
 DAEMON2=/usr/bin/deluge-web&lt;br /&gt;
 DAEMON2_ARGS=&amp;quot;-L warning -l /var/log/deluge/web/warning.log -b /deluge&amp;quot;               # Consult `man deluge-web` for more options&lt;br /&gt;
 PIDFILE1=/var/run/$NAME1.pid&lt;br /&gt;
 PIDFILE2=/var/run/$NAME2.pid&lt;br /&gt;
 UMASK=022                     # Change this to 0 if running deluged as its own user&lt;br /&gt;
 PKGNAME=deluge-daemon&lt;br /&gt;
 SCRIPTNAME=/etc/init.d/$PKGNAME&lt;br /&gt;
 &lt;br /&gt;
 # Exit if the package is not installed&lt;br /&gt;
 [ -x &amp;quot;$DAEMON1&amp;quot; -a -x &amp;quot;$DAEMON2&amp;quot; ] || exit 0&lt;br /&gt;
 &lt;br /&gt;
 # Read configuration variable file if it is present&lt;br /&gt;
 [ -r /etc/default/$PKGNAME ] &amp;amp;&amp;amp; . /etc/default/$PKGNAME&lt;br /&gt;
 &lt;br /&gt;
 # Load the VERBOSE setting and other rcS variables&lt;br /&gt;
 [ -f /etc/default/rcS ] &amp;amp;&amp;amp; . /etc/default/rcS&lt;br /&gt;
 &lt;br /&gt;
 # Define LSB log_* functions.&lt;br /&gt;
 # Depend on lsb-base (&amp;gt;= 3.0-6) to ensure that this file is present.&lt;br /&gt;
 . /lib/lsb/init-functions&lt;br /&gt;
 &lt;br /&gt;
 if [ -z &amp;quot;$RUN_AT_STARTUP&amp;quot; -o &amp;quot;$RUN_AT_STARTUP&amp;quot; != &amp;quot;YES&amp;quot; ]&lt;br /&gt;
 then&lt;br /&gt;
    log_warning_msg &amp;quot;Not starting $PKGNAME, edit /etc/default/$PKGNAME to start it.&amp;quot;&lt;br /&gt;
    exit 0&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 if [ -z &amp;quot;$DELUGED_USER&amp;quot; ]&lt;br /&gt;
 then&lt;br /&gt;
     log_warning_msg &amp;quot;Not starting $PKGNAME, DELUGED_USER not set in /etc/default/$PKGNAME.&amp;quot;&lt;br /&gt;
     exit 0&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 #&lt;br /&gt;
 # Function that starts the daemon/service&lt;br /&gt;
 #&lt;br /&gt;
 do_start()&lt;br /&gt;
 {&lt;br /&gt;
    # Return&lt;br /&gt;
    #   0 if daemon has been started&lt;br /&gt;
    #   1 if daemon was already running&lt;br /&gt;
    #   2 if daemon could not be started&lt;br /&gt;
    start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --exec $DAEMON1 \&lt;br /&gt;
       --chuid $DELUGED_USER --user $DELUGED_USER --umask $UMASK --test &amp;gt; /dev/null&lt;br /&gt;
    RETVAL1=&amp;quot;$?&amp;quot;&lt;br /&gt;
    start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --exec $DAEMON2 \&lt;br /&gt;
       --chuid $DELUGED_USER --user $DELUGED_USER --umask $UMASK --test &amp;gt; /dev/null&lt;br /&gt;
    RETVAL2=&amp;quot;$?&amp;quot;&lt;br /&gt;
    [ &amp;quot;$RETVAL1&amp;quot; = &amp;quot;0&amp;quot; -a &amp;quot;$RETVAL2&amp;quot; = &amp;quot;0&amp;quot; ] || return 1&lt;br /&gt;
 &lt;br /&gt;
    start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --make-pidfile --exec $DAEMON1 \&lt;br /&gt;
       --chuid $DELUGED_USER --user $DELUGED_USER --umask $UMASK -- $DAEMON1_ARGS&lt;br /&gt;
    RETVAL1=&amp;quot;$?&amp;quot;&lt;br /&gt;
         sleep 2&lt;br /&gt;
    start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --make-pidfile --exec $DAEMON2 \&lt;br /&gt;
       --chuid $DELUGED_USER --user $DELUGED_USER --umask $UMASK -- $DAEMON2_ARGS&lt;br /&gt;
    RETVAL2=&amp;quot;$?&amp;quot;&lt;br /&gt;
    [ &amp;quot;$RETVAL1&amp;quot; = &amp;quot;0&amp;quot; -a &amp;quot;$RETVAL2&amp;quot; = &amp;quot;0&amp;quot; ] || return 2&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 #&lt;br /&gt;
 # Function that stops the daemon/service&lt;br /&gt;
 #&lt;br /&gt;
 do_stop()&lt;br /&gt;
 {&lt;br /&gt;
    # Return&lt;br /&gt;
    #   0 if daemon has been stopped&lt;br /&gt;
    #   1 if daemon was already stopped&lt;br /&gt;
    #   2 if daemon could not be stopped&lt;br /&gt;
    #   other if a failure occurred&lt;br /&gt;
 &lt;br /&gt;
    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $DELUGED_USER --pidfile $PIDFILE2&lt;br /&gt;
    RETVAL2=&amp;quot;$?&amp;quot;&lt;br /&gt;
    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $DELUGED_USER --pidfile $PIDFILE1&lt;br /&gt;
    RETVAL1=&amp;quot;$?&amp;quot;&lt;br /&gt;
    [ &amp;quot;$RETVAL1&amp;quot; = &amp;quot;2&amp;quot; -o &amp;quot;$RETVAL2&amp;quot; = &amp;quot;2&amp;quot; ] &amp;amp;&amp;amp; return 2&lt;br /&gt;
 &lt;br /&gt;
    rm -f $PIDFILE1 $PIDFILE2&lt;br /&gt;
 &lt;br /&gt;
    [ &amp;quot;$RETVAL1&amp;quot; = &amp;quot;0&amp;quot; -a &amp;quot;$RETVAL2&amp;quot; = &amp;quot;0&amp;quot; ] &amp;amp;&amp;amp; return 0 || return 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
    [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_daemon_msg &amp;quot;Starting $DESC&amp;quot; &amp;quot;$NAME1&amp;quot;&lt;br /&gt;
    do_start&lt;br /&gt;
    case &amp;quot;$?&amp;quot; in&lt;br /&gt;
       0|1) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 0 ;;&lt;br /&gt;
       2) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 1 ;;&lt;br /&gt;
    esac&lt;br /&gt;
    ;;&lt;br /&gt;
   stop)&lt;br /&gt;
    [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_daemon_msg &amp;quot;Stopping $DESC&amp;quot; &amp;quot;$NAME1&amp;quot;&lt;br /&gt;
    do_stop&lt;br /&gt;
    case &amp;quot;$?&amp;quot; in&lt;br /&gt;
       0|1) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 0 ;;&lt;br /&gt;
       2) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 1 ;;&lt;br /&gt;
    esac&lt;br /&gt;
    ;;&lt;br /&gt;
   restart|force-reload)&lt;br /&gt;
    log_daemon_msg &amp;quot;Restarting $DESC&amp;quot; &amp;quot;$NAME1&amp;quot;&lt;br /&gt;
    do_stop&lt;br /&gt;
    case &amp;quot;$?&amp;quot; in&lt;br /&gt;
      0|1)&lt;br /&gt;
       do_start&lt;br /&gt;
       case &amp;quot;$?&amp;quot; in&lt;br /&gt;
          0) log_end_msg 0 ;;&lt;br /&gt;
          1) log_end_msg 1 ;; # Old process is still running&lt;br /&gt;
          *) log_end_msg 1 ;; # Failed to start&lt;br /&gt;
       esac&lt;br /&gt;
       ;;&lt;br /&gt;
      *)&lt;br /&gt;
         # Failed to stop&lt;br /&gt;
       log_end_msg 1&lt;br /&gt;
       ;;&lt;br /&gt;
    esac&lt;br /&gt;
    ;;&lt;br /&gt;
   *)&lt;br /&gt;
    echo &amp;quot;Usage: $SCRIPTNAME {start|stop|restart|force-reload}&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
    exit 3&lt;br /&gt;
    ;;&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 :&lt;br /&gt;
*Make file executable&lt;br /&gt;
 CHMOD 755 /etc/init.d/deluge-daemon&lt;br /&gt;
*Auto start after reboot&lt;br /&gt;
 update-rc.d deluge-daemon defaults&lt;br /&gt;
*View Web Interface&lt;br /&gt;
:Default password is &#039;&#039;deluge&#039;&#039;&lt;br /&gt;
 http://servername:8112/&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
The configuration through the web interface doesn&#039;t always work. I found it easier and more reliable to manually edit the core.conf file.&amp;lt;br&amp;gt;&lt;br /&gt;
This configuration file is also currently setup for Private Trackers, so DHT/PEX options are disabled.&amp;lt;br&amp;gt;&lt;br /&gt;
*nano /root/.config/deluge/core.conf&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;file&amp;quot;: 1, &lt;br /&gt;
   &amp;quot;format&amp;quot;: 1&lt;br /&gt;
 }{&lt;br /&gt;
   &amp;quot;info_sent&amp;quot;: 0.0, &lt;br /&gt;
   &amp;quot;lsd&amp;quot;: false, &lt;br /&gt;
   &amp;quot;send_info&amp;quot;: false, &lt;br /&gt;
   &amp;quot;move_completed_path&amp;quot;: &amp;quot;/root&amp;quot;, &lt;br /&gt;
   &amp;quot;enc_in_policy&amp;quot;: 1, &lt;br /&gt;
   &amp;quot;queue_new_to_top&amp;quot;: false, &lt;br /&gt;
   &amp;quot;ignore_limits_on_local_network&amp;quot;: true, &lt;br /&gt;
   &amp;quot;rate_limit_ip_overhead&amp;quot;: true, &lt;br /&gt;
   &amp;quot;daemon_port&amp;quot;: 58846, &lt;br /&gt;
   &amp;quot;natpmp&amp;quot;: false, &lt;br /&gt;
   &amp;quot;max_active_limit&amp;quot;: 8, &lt;br /&gt;
   &amp;quot;utpex&amp;quot;: false, &lt;br /&gt;
   &amp;quot;max_active_downloading&amp;quot;: 3, &lt;br /&gt;
   &amp;quot;max_active_seeding&amp;quot;: 5, &lt;br /&gt;
   &amp;quot;allow_remote&amp;quot;: false, &lt;br /&gt;
   &amp;quot;max_half_open_connections&amp;quot;: 50, &lt;br /&gt;
   &amp;quot;download_location&amp;quot;: &amp;quot;/var/local/torrents&amp;quot;, &lt;br /&gt;
   &amp;quot;compact_allocation&amp;quot;: false, &lt;br /&gt;
   &amp;quot;max_upload_speed&amp;quot;: 400.0, &lt;br /&gt;
   &amp;quot;cache_expiry&amp;quot;: 60, &lt;br /&gt;
   &amp;quot;prioritize_first_last_pieces&amp;quot;: false, &lt;br /&gt;
   &amp;quot;auto_managed&amp;quot;: true, &lt;br /&gt;
   &amp;quot;enc_level&amp;quot;: 2, &lt;br /&gt;
   &amp;quot;max_connections_per_second&amp;quot;: 20, &lt;br /&gt;
   &amp;quot;dont_count_slow_torrents&amp;quot;: false, &lt;br /&gt;
   &amp;quot;random_outgoing_ports&amp;quot;: true, &lt;br /&gt;
   &amp;quot;max_upload_slots_per_torrent&amp;quot;: -1, &lt;br /&gt;
   &amp;quot;new_release_check&amp;quot;: false, &lt;br /&gt;
   &amp;quot;enc_out_policy&amp;quot;: 1, &lt;br /&gt;
   &amp;quot;outgoing_ports&amp;quot;: [&lt;br /&gt;
     12345, &lt;br /&gt;
     12346&lt;br /&gt;
   ], &lt;br /&gt;
   &amp;quot;seed_time_limit&amp;quot;: 180, &lt;br /&gt;
   &amp;quot;cache_size&amp;quot;: 512, &lt;br /&gt;
   &amp;quot;share_ratio_limit&amp;quot;: 2.0, &lt;br /&gt;
   &amp;quot;max_download_speed&amp;quot;: 1200.0, &lt;br /&gt;
   &amp;quot;geoip_db_location&amp;quot;: &amp;quot;/usr/share/GeoIP/GeoIP.dat&amp;quot;, &lt;br /&gt;
   &amp;quot;torrentfiles_location&amp;quot;: &amp;quot;/root&amp;quot;, &lt;br /&gt;
   &amp;quot;stop_seed_at_ratio&amp;quot;: false, &lt;br /&gt;
   &amp;quot;peer_tos&amp;quot;: &amp;quot;0x00&amp;quot;, &lt;br /&gt;
   &amp;quot;listen_interface&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
   &amp;quot;upnp&amp;quot;: false, &lt;br /&gt;
   &amp;quot;max_download_speed_per_torrent&amp;quot;: -1, &lt;br /&gt;
   &amp;quot;max_upload_slots_global&amp;quot;: 6, &lt;br /&gt;
   &amp;quot;enabled_plugins&amp;quot;: [&lt;br /&gt;
     &amp;quot;AutoAdd&amp;quot;, &lt;br /&gt;
     &amp;quot;Blocklist&amp;quot;&lt;br /&gt;
   ], &lt;br /&gt;
   &amp;quot;random_port&amp;quot;: false, &lt;br /&gt;
   &amp;quot;autoadd_enable&amp;quot;: false, &lt;br /&gt;
   &amp;quot;max_connections_global&amp;quot;: 300, &lt;br /&gt;
   &amp;quot;enc_prefer_rc4&amp;quot;: true, &lt;br /&gt;
   &amp;quot;listen_ports&amp;quot;: [&lt;br /&gt;
     12345, &lt;br /&gt;
     12346&lt;br /&gt;
   ], &lt;br /&gt;
   &amp;quot;dht&amp;quot;: false, &lt;br /&gt;
   &amp;quot;stop_seed_ratio&amp;quot;: 2.0, &lt;br /&gt;
   &amp;quot;seed_time_ratio_limit&amp;quot;: 7.0, &lt;br /&gt;
   &amp;quot;max_upload_speed_per_torrent&amp;quot;: -1, &lt;br /&gt;
   &amp;quot;copy_torrent_file&amp;quot;: false, &lt;br /&gt;
   &amp;quot;del_copy_torrent_file&amp;quot;: false, &lt;br /&gt;
   &amp;quot;move_completed&amp;quot;: false, &lt;br /&gt;
   &amp;quot;proxies&amp;quot;: {&lt;br /&gt;
     &amp;quot;peer&amp;quot;: {&lt;br /&gt;
       &amp;quot;username&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;password&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;type&amp;quot;: 0, &lt;br /&gt;
       &amp;quot;hostname&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;port&amp;quot;: 8080&lt;br /&gt;
     }, &lt;br /&gt;
     &amp;quot;web_seed&amp;quot;: {&lt;br /&gt;
       &amp;quot;username&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;password&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;type&amp;quot;: 0, &lt;br /&gt;
       &amp;quot;hostname&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;port&amp;quot;: 8080&lt;br /&gt;
     }, &lt;br /&gt;
     &amp;quot;tracker&amp;quot;: {&lt;br /&gt;
       &amp;quot;username&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;password&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;type&amp;quot;: 0, &lt;br /&gt;
       &amp;quot;hostname&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;port&amp;quot;: 8080&lt;br /&gt;
     }, &lt;br /&gt;
     &amp;quot;dht&amp;quot;: {&lt;br /&gt;
       &amp;quot;username&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;password&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;type&amp;quot;: 0, &lt;br /&gt;
       &amp;quot;hostname&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;port&amp;quot;: 8080&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   &amp;quot;add_paused&amp;quot;: false, &lt;br /&gt;
   &amp;quot;max_connections_per_torrent&amp;quot;: -1, &lt;br /&gt;
   &amp;quot;remove_seed_at_ratio&amp;quot;: false, &lt;br /&gt;
   &amp;quot;autoadd_location&amp;quot;: &amp;quot;/root&amp;quot;, &lt;br /&gt;
   &amp;quot;plugins_location&amp;quot;: &amp;quot;/root/.config/deluge/plugins&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Apache Proxy Setup ====&lt;br /&gt;
This reverse proxy allows you to view the web interface without using the :8112/ definition. It makes it easier for the wife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Enable Modules&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
*nano /etc/apache2/conf.d/deluge.conf&lt;br /&gt;
 # Reverse-proxy deluge server into main server space&lt;br /&gt;
 ProxyRequests off&lt;br /&gt;
 ProxyPass /deluge/ http://127.0.0.1:8112/&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;Location /deluge/&amp;gt;&lt;br /&gt;
    ProxyPassReverse http://127.0.0.1:8112/deluge/&lt;br /&gt;
    ProxyPassReverseCookieDomain 127.0.0.1 localhost&lt;br /&gt;
    ProxyPassReverseCookiePath / /deluge/&lt;br /&gt;
    Order allow,deny&lt;br /&gt;
    Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
*View new deluge URL&lt;br /&gt;
 http://servername/deluge/&lt;br /&gt;
&lt;br /&gt;
== FlexGet Install ==&lt;br /&gt;
=== TheTVDB PreConfig ===&lt;br /&gt;
This is the online website that will actually be telling your RSS feeder what shows to look for.&amp;lt;br&amp;gt;&lt;br /&gt;
*Go signup for an account and then go back to your &amp;quot;Account&amp;quot; and get your &amp;quot;Account Identifier&amp;quot;. Write it down, you will need it in a little bit.&lt;br /&gt;
 http://thetvdb.com/&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
These instructions are based upon http://flexget.com/wiki/InstallWizard/Linux&amp;lt;br&amp;gt;&lt;br /&gt;
*Verify python installed&lt;br /&gt;
 sudo apt-get install python2.6&lt;br /&gt;
*Install setup tools&lt;br /&gt;
 sudo apt-get install python-setuptools&lt;br /&gt;
*Install FlexGet&lt;br /&gt;
 sudo easy_install flexget&lt;br /&gt;
*Verify Install&lt;br /&gt;
 flexget -V&lt;br /&gt;
*Setup Cron&lt;br /&gt;
I run it every 15 minutes, trackers can tolerate that.&lt;br /&gt;
 crontab -l&lt;br /&gt;
&lt;br /&gt;
 # FlexGet RSS torrent download&lt;br /&gt;
 00,15,30,45 * * * * /usr/local/bin/flexget --cron&lt;br /&gt;
&lt;br /&gt;
=== TVDB.com Configuration ===&lt;br /&gt;
This configuration style was based upon http://flexget.com/wiki/Cookbook/Series/DelugeThetvdbSeries&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;spaces are extremely important&#039;&#039;&#039;&lt;br /&gt;
* nano /root/.flexget/config.yml&lt;br /&gt;
&amp;lt;pre&amp;gt; presets:&lt;br /&gt;
   tv:&lt;br /&gt;
     import_series:&lt;br /&gt;
       from:&lt;br /&gt;
         thetvdb_favorites:&lt;br /&gt;
           account_id: C221005D4E1F6B79&lt;br /&gt;
       settings:&lt;br /&gt;
         min_quality: hdtv&lt;br /&gt;
         max_quality: 720p&lt;br /&gt;
     exists_series:&lt;br /&gt;
       - /var/local/storage/TV_Shows&lt;br /&gt;
       - /var/local/storage/torrents/.incomplete&lt;br /&gt;
     thetvdb_lookup: yes&lt;br /&gt;
     set:&lt;br /&gt;
       path: /var/local/storage/torrents/.incomplete&lt;br /&gt;
       movedone: &amp;quot;/var/local/storage/TV_Shows/{{ series_name }}/Season {{ series_season }}&amp;quot;&lt;br /&gt;
       content_filename: |&lt;br /&gt;
         {{ series_name }}.{{ series_id }}&lt;br /&gt;
         {% if ep_name|default(False) %}.{{ ep_name }} {% endif %}.{{ quality|upper }}&lt;br /&gt;
         {% if proper_count %} - proper{% if proper_count &amp;gt; 1 %}{{ proper_count }}{% endif %}{% endif %}&lt;br /&gt;
     deluge:&lt;br /&gt;
       main_file_only: yes&lt;br /&gt;
 &lt;br /&gt;
 feeds:&lt;br /&gt;
   feed1:&lt;br /&gt;
     rss: https://rssfeed1.com&lt;br /&gt;
     priority: 1&lt;br /&gt;
     preset: tv&lt;br /&gt;
 &lt;br /&gt;
   feed2:&lt;br /&gt;
     rss: http://rss.site2.com&lt;br /&gt;
     priority: 2&lt;br /&gt;
     preset: tv&lt;br /&gt;
 &lt;br /&gt;
   feed3:&lt;br /&gt;
     headers:&lt;br /&gt;
       cookie: uid=123456; pass=sdf651a651df84a98dg8r4g&lt;br /&gt;
     rss: http://www.feed3.org/rss.php&lt;br /&gt;
     priority: 3&lt;br /&gt;
     preset: tv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TRAKT.TV/IMDB Configuration ===&lt;br /&gt;
This configuration is for monitoring your favorites on http://trakt.tv/ and/or http://imdb.com/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feeds:&lt;br /&gt;
  seed_watchlist:&lt;br /&gt;
    # priority plugin is used so that this feed runs before the actual download feed&lt;br /&gt;
    priority: 1&lt;br /&gt;
    interval: 2 hours&lt;br /&gt;
    trakt_list:&lt;br /&gt;
      api_key: myapikey&lt;br /&gt;
      username: myusername&lt;br /&gt;
      movies: watchlist&lt;br /&gt;
    imdb_list:&lt;br /&gt;
      list: watchlist&lt;br /&gt;
      username: me@somewhere.com&lt;br /&gt;
      password: mypassword&lt;br /&gt;
    accept_all: yes&lt;br /&gt;
    queue_movies:&lt;br /&gt;
      quality: 720p bluray&lt;br /&gt;
      force: no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Full Configuration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
presets:&lt;br /&gt;
  global:&lt;br /&gt;
    deluge:&lt;br /&gt;
      main_file_only: yes&lt;br /&gt;
      path: /var/local/storage/torrents/.incomplete&lt;br /&gt;
    email:&lt;br /&gt;
      active: True&lt;br /&gt;
      from: mailer@nowhere.com&lt;br /&gt;
      to: toemail@mail.com&lt;br /&gt;
      smtp_host: smtp.gmail.com&lt;br /&gt;
      smtp_port: 587&lt;br /&gt;
      smtp_login: true&lt;br /&gt;
      smtp_username: user@gmail.com&lt;br /&gt;
      smtp_password: password&lt;br /&gt;
      smtp_tls: true&lt;br /&gt;
&lt;br /&gt;
  tv:&lt;br /&gt;
    #series_premiere: yes&lt;br /&gt;
    import_series:&lt;br /&gt;
      from:&lt;br /&gt;
        thetvdb_favorites:&lt;br /&gt;
          account_id: Csdfh516fghB79&lt;br /&gt;
      settings:&lt;br /&gt;
        quality: hdtv&lt;br /&gt;
        #min_quality: hdtv&lt;br /&gt;
        #max_quality: 720p&lt;br /&gt;
        propers: no&lt;br /&gt;
    exists_series:&lt;br /&gt;
      - /var/local/storage/TV_Shows&lt;br /&gt;
      - /var/local/storage/torrents/.incomplete&lt;br /&gt;
    thetvdb_lookup: yes&lt;br /&gt;
    set:&lt;br /&gt;
      #path: /var/local/storage/torrents/.incomplete&lt;br /&gt;
      movedone: &amp;quot;/var/local/storage/TV_Shows/{{ series_name }}/Season {{ series_season }}&amp;quot;&lt;br /&gt;
      content_filename: |&lt;br /&gt;
        {{ series_name }}.{{ series_id }}&lt;br /&gt;
        {% if ep_name|default(False) %}.{{ ep_name }} {% endif %}.{{ quality|upper }}&lt;br /&gt;
        {% if proper_count %} - proper{% if proper_count &amp;gt; 1 %}{{ proper_count }}{% endif %}{% endif %}&lt;br /&gt;
      label: tv&lt;br /&gt;
&lt;br /&gt;
  movies:&lt;br /&gt;
    imdb:&lt;br /&gt;
      min_score: 7.5&lt;br /&gt;
      min_votes: 10000&lt;br /&gt;
      min_year: 2009&lt;br /&gt;
      reject_genres:&lt;br /&gt;
        - News&lt;br /&gt;
        - Documentary&lt;br /&gt;
        - Horror&lt;br /&gt;
        - Biography&lt;br /&gt;
        - Reality-Tv&lt;br /&gt;
      accept_languages:&lt;br /&gt;
        - english&lt;br /&gt;
        - swedish&lt;br /&gt;
      reject_mpaa_ratings:&lt;br /&gt;
        - X&lt;br /&gt;
    content_filter:&lt;br /&gt;
      reject: &lt;br /&gt;
        - &#039;*.rar&#039;&lt;br /&gt;
        - &#039;*.wmv&#039;&lt;br /&gt;
    quality:&lt;br /&gt;
      max: 1080p&lt;br /&gt;
      min: 720p bluray&lt;br /&gt;
    content_size:&lt;br /&gt;
      max: 8000&lt;br /&gt;
      min: 1200&lt;br /&gt;
    regexp:&lt;br /&gt;
      from: title&lt;br /&gt;
      reject:&lt;br /&gt;
        - ts&lt;br /&gt;
        - hindi&lt;br /&gt;
        - german&lt;br /&gt;
    imdb_required: yes&lt;br /&gt;
    seen_movies: strict&lt;br /&gt;
    limit_new: 1&lt;br /&gt;
    exists_movie: &lt;br /&gt;
      - /var/local/storage/torrents/.incomplete&lt;br /&gt;
      - /var/local/storage/Movies/Feature_Films&lt;br /&gt;
      - &amp;quot;/var/local/storage/Movies/Disney Movies&amp;quot;&lt;br /&gt;
    set:&lt;br /&gt;
      movedone: /var/local/storage/torrents&lt;br /&gt;
      label: movie&lt;br /&gt;
      addpaused: yes&lt;br /&gt;
      ratio: 1&lt;br /&gt;
&lt;br /&gt;
feeds:&lt;br /&gt;
  feed1:&lt;br /&gt;
    rss: https://rssfeed1.com&lt;br /&gt;
    priority: 1&lt;br /&gt;
    preset: tv&lt;br /&gt;
&lt;br /&gt;
  feed2:&lt;br /&gt;
    rss: http://rss.site2.com&lt;br /&gt;
    priority: 2&lt;br /&gt;
    preset: tv&lt;br /&gt;
&lt;br /&gt;
  feed3:&lt;br /&gt;
    headers:&lt;br /&gt;
      cookie: uid=123456; pass=sdf651a651df84a98dg8r4g&lt;br /&gt;
    rss: http://www.feed3.org/rss.php&lt;br /&gt;
    priority: 3&lt;br /&gt;
    preset: tv&lt;br /&gt;
&lt;br /&gt;
  feed3:&lt;br /&gt;
    rss: http://rss.feed4.org/207&lt;br /&gt;
    priority: 4&lt;br /&gt;
    preset: movies&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting ====&lt;br /&gt;
*Check config&lt;br /&gt;
 #flexget -v --check&lt;br /&gt;
&lt;br /&gt;
*Test config&lt;br /&gt;
 #flexget -v --test&lt;br /&gt;
&lt;br /&gt;
*Manual run&lt;br /&gt;
 #flexget&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Flexget Options&lt;br /&gt;
 Usage: flexget [options]&lt;br /&gt;
 &lt;br /&gt;
 Options:&lt;br /&gt;
  -h, --help            show this help message and exit&lt;br /&gt;
  -V, --version         Print FlexGet version and exit.&lt;br /&gt;
  --bugreport           Use this option to create a detailed bug report, note&lt;br /&gt;
                        that the output might contain PRIVATE data, so edit&lt;br /&gt;
                        that out&lt;br /&gt;
  -c CONFIG             Specify configuration file. Default is config.yml&lt;br /&gt;
  --test                Verbose what would happen on normal execution.&lt;br /&gt;
  --check               Validate configuration file and print errors.&lt;br /&gt;
  --learn               Matches are not downloaded but will be skipped in the&lt;br /&gt;
                        future.&lt;br /&gt;
  --no-cache            Disable caches. Works only in plugins that have&lt;br /&gt;
                        explicit support.&lt;br /&gt;
  --reset               DANGEROUS. Obliterates the database and runs with&lt;br /&gt;
                        learn in order to to regain useful state.&lt;br /&gt;
  --cron                Disables stdout and stderr output, log file used.&lt;br /&gt;
                        Reduces logging level slightly.&lt;br /&gt;
  --db-cleanup          Forces the database cleanup event to run right now.&lt;br /&gt;
  --archive-search=TXT  Search from the archive.&lt;br /&gt;
  --archive-inject      Inject entries from the archive into a feed where it&lt;br /&gt;
                        was archived from. Usage: ID[,ID] [FORCE]&lt;br /&gt;
  --search-plugins      List supported search plugins.&lt;br /&gt;
  --preset=NAME         Execute feeds with given preset.&lt;br /&gt;
  -v, --verbose         Verbose undecided entries.&lt;br /&gt;
  --try-regexp          Try regular expressions interactively.&lt;br /&gt;
  --stop-waiting=NAME   Stop timeframe for a given series.&lt;br /&gt;
  --disable-advancement&lt;br /&gt;
                        Disable episode advancement for this run.&lt;br /&gt;
  --history             List 50 latest accepted entries.&lt;br /&gt;
  --dl-path=PATH        Override path for download plugin. Applies to all&lt;br /&gt;
                        executed feeds.&lt;br /&gt;
  --dump                Display all feed entries&lt;br /&gt;
  --inject              Injects entry to all executed feeds: &amp;lt;TITLE&amp;gt; [URL]&lt;br /&gt;
                        [ACCEPT] [FORCE]&lt;br /&gt;
  --tail-reset=FILE     Reset tail position for a file.&lt;br /&gt;
  --cli-config=PARAMS   Configuration parameters trough commandline. See --doc&lt;br /&gt;
                        cli_config.&lt;br /&gt;
  --series              Display series summary.&lt;br /&gt;
  --series-forget       Remove complete series or single episode from&lt;br /&gt;
                        database: &amp;lt;NAME&amp;gt; [EPISODE]&lt;br /&gt;
  --plugins             Print registered plugins summary&lt;br /&gt;
  --doc=PLUGIN          Display plugin documentation. See also --plugins.&lt;br /&gt;
  --movie-queue         (add|del|list|downloaded)&lt;br /&gt;
                        [NAME|IMDB_ID|tmdb_id=TMDB_ID] [QUALITY] [FORCE]&lt;br /&gt;
  --now                 Ignore interval(s)&lt;br /&gt;
  --feed=FEED           Run only specified feed.&lt;br /&gt;
  --forget=FEED|VALUE   Forget feed (completely) or given title or url.&lt;br /&gt;
  --seen=VALUE          Add title or url to what has been seen in feeds.&lt;br /&gt;
  --seen-search=VALUE   Search given text from seen database.&lt;br /&gt;
  --repair-seen-movies  Repair seen movies database (required only when&lt;br /&gt;
                        upgrading from old problematic version)&lt;br /&gt;
  --failed              List recently failed entries.&lt;br /&gt;
  --clear               Clear recently failed list.&lt;br /&gt;
  --forget-rejected     Forget all previous rejections so entries can be&lt;br /&gt;
                        processed again.&lt;br /&gt;
&lt;br /&gt;
=== XBMC Notifications ===&lt;br /&gt;
*Goal is to send notifications to XBMC interface when a torrent is finished and ready to watch.&lt;br /&gt;
:&#039;&#039;must use URL syntax, white space=%20&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exec: curl -G &amp;quot;&#039;http://localhost:8080/xbmcCmds/xbmcHttp?command=ExecBuiltIn(Notification(FLEXGET,New%20Torrent%20Downloaded!,20000))&#039;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Deluge&amp;diff=2710</id>
		<title>Deluge</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Deluge&amp;diff=2710"/>
		<updated>2022-11-15T18:01:18Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: /* SystemD deluged */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a howto for setting up Deluge on a headless Ubuntu(natty) server with RSS automatic feeds for TV shows with multiple trackers and fallback video qualities. The RSS feeder also will pull out the actual TV show file, rename it, and put it in a named directory structure.&lt;br /&gt;
&lt;br /&gt;
== Deluge Install ==&lt;br /&gt;
*Version 1.3.3 is in the repo as of this writing(20111011)&lt;br /&gt;
 sudo add-apt-repository ppa:deluge-team/ppa&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install deluged deluge-web&lt;br /&gt;
&lt;br /&gt;
=== Startup Script ===&lt;br /&gt;
I run deluge as root to make it easier, I know it&#039;s insecure, I don&#039;t care.&amp;lt;p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Default file ====&lt;br /&gt;
*nano /etc/default/deluge-daemon&lt;br /&gt;
 #Configuration for /etc/init.d/deluge-daemon&lt;br /&gt;
 &lt;br /&gt;
 # The init.d script will only run if this variable non-empty.&lt;br /&gt;
 DELUGED_USER=&amp;quot;root&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Should we run at startup?&lt;br /&gt;
 RUN_AT_STARTUP=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Create log directories&lt;br /&gt;
 mkdir -p /var/log/deluge/daemon&lt;br /&gt;
 mkdir -p /var/log/deluge/web&lt;br /&gt;
 chown -R user:user /var/log/deluge&lt;br /&gt;
&lt;br /&gt;
==== SystemD deluged ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Deluge Bittorrent Client Daemon&lt;br /&gt;
After=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=root&lt;br /&gt;
Group=root&lt;br /&gt;
UMask=000&lt;br /&gt;
&lt;br /&gt;
ExecStart=/bin/ip netns exec vpn /usr/bin/deluged -d -i 0.0.0.0 -u 10.1.1.2 -l /var/log/deluge/deluged.log -L info&lt;br /&gt;
&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
&lt;br /&gt;
# Configures the time to wait before service is stopped forcefully.&lt;br /&gt;
TimeoutStopSec=300&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SystemD deluge-web ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Deluge Bittorrent Client Web Interface&lt;br /&gt;
After=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=root&lt;br /&gt;
Group=root&lt;br /&gt;
UMask=027&lt;br /&gt;
ExecStart=/usr/bin/deluge-web -i 127.0.0.1 -l /var/log/deluge/deluge-web.log -L info -d&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Init.d file ====&lt;br /&gt;
*nano /etc/init.d/deluge-daemon&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 ### BEGIN INIT INFO&lt;br /&gt;
 # Provides:          deluge-daemon&lt;br /&gt;
 # Required-Start:    $local_fs $remote_fs&lt;br /&gt;
 # Required-Stop:     $local_fs $remote_fs&lt;br /&gt;
 # Should-Start:      $network&lt;br /&gt;
 # Should-Stop:       $network&lt;br /&gt;
 # Default-Start:     2 3 4 5&lt;br /&gt;
 # Default-Stop:      0 1 6&lt;br /&gt;
 # Short-Description: Daemonized version of deluge and webui.&lt;br /&gt;
 # Description:       Starts the deluge daemon with the user specified in&lt;br /&gt;
 #                    /etc/default/deluge-daemon.&lt;br /&gt;
 ### END INIT INFO&lt;br /&gt;
 &lt;br /&gt;
 # Author: Adolfo R. Brandes &lt;br /&gt;
 &lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 DESC=&amp;quot;Deluge Daemon&amp;quot;&lt;br /&gt;
 NAME1=&amp;quot;deluged&amp;quot;&lt;br /&gt;
 NAME2=&amp;quot;deluge&amp;quot;&lt;br /&gt;
 DAEMON1=/usr/bin/deluged&lt;br /&gt;
 DAEMON1_ARGS=&amp;quot;-d -L warning -l /var/log/deluge/daemon/warning.log&amp;quot;             # Consult `man deluged` for  more options&lt;br /&gt;
 DAEMON2=/usr/bin/deluge-web&lt;br /&gt;
 DAEMON2_ARGS=&amp;quot;-L warning -l /var/log/deluge/web/warning.log -b /deluge&amp;quot;               # Consult `man deluge-web` for more options&lt;br /&gt;
 PIDFILE1=/var/run/$NAME1.pid&lt;br /&gt;
 PIDFILE2=/var/run/$NAME2.pid&lt;br /&gt;
 UMASK=022                     # Change this to 0 if running deluged as its own user&lt;br /&gt;
 PKGNAME=deluge-daemon&lt;br /&gt;
 SCRIPTNAME=/etc/init.d/$PKGNAME&lt;br /&gt;
 &lt;br /&gt;
 # Exit if the package is not installed&lt;br /&gt;
 [ -x &amp;quot;$DAEMON1&amp;quot; -a -x &amp;quot;$DAEMON2&amp;quot; ] || exit 0&lt;br /&gt;
 &lt;br /&gt;
 # Read configuration variable file if it is present&lt;br /&gt;
 [ -r /etc/default/$PKGNAME ] &amp;amp;&amp;amp; . /etc/default/$PKGNAME&lt;br /&gt;
 &lt;br /&gt;
 # Load the VERBOSE setting and other rcS variables&lt;br /&gt;
 [ -f /etc/default/rcS ] &amp;amp;&amp;amp; . /etc/default/rcS&lt;br /&gt;
 &lt;br /&gt;
 # Define LSB log_* functions.&lt;br /&gt;
 # Depend on lsb-base (&amp;gt;= 3.0-6) to ensure that this file is present.&lt;br /&gt;
 . /lib/lsb/init-functions&lt;br /&gt;
 &lt;br /&gt;
 if [ -z &amp;quot;$RUN_AT_STARTUP&amp;quot; -o &amp;quot;$RUN_AT_STARTUP&amp;quot; != &amp;quot;YES&amp;quot; ]&lt;br /&gt;
 then&lt;br /&gt;
    log_warning_msg &amp;quot;Not starting $PKGNAME, edit /etc/default/$PKGNAME to start it.&amp;quot;&lt;br /&gt;
    exit 0&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 if [ -z &amp;quot;$DELUGED_USER&amp;quot; ]&lt;br /&gt;
 then&lt;br /&gt;
     log_warning_msg &amp;quot;Not starting $PKGNAME, DELUGED_USER not set in /etc/default/$PKGNAME.&amp;quot;&lt;br /&gt;
     exit 0&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 #&lt;br /&gt;
 # Function that starts the daemon/service&lt;br /&gt;
 #&lt;br /&gt;
 do_start()&lt;br /&gt;
 {&lt;br /&gt;
    # Return&lt;br /&gt;
    #   0 if daemon has been started&lt;br /&gt;
    #   1 if daemon was already running&lt;br /&gt;
    #   2 if daemon could not be started&lt;br /&gt;
    start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --exec $DAEMON1 \&lt;br /&gt;
       --chuid $DELUGED_USER --user $DELUGED_USER --umask $UMASK --test &amp;gt; /dev/null&lt;br /&gt;
    RETVAL1=&amp;quot;$?&amp;quot;&lt;br /&gt;
    start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --exec $DAEMON2 \&lt;br /&gt;
       --chuid $DELUGED_USER --user $DELUGED_USER --umask $UMASK --test &amp;gt; /dev/null&lt;br /&gt;
    RETVAL2=&amp;quot;$?&amp;quot;&lt;br /&gt;
    [ &amp;quot;$RETVAL1&amp;quot; = &amp;quot;0&amp;quot; -a &amp;quot;$RETVAL2&amp;quot; = &amp;quot;0&amp;quot; ] || return 1&lt;br /&gt;
 &lt;br /&gt;
    start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --make-pidfile --exec $DAEMON1 \&lt;br /&gt;
       --chuid $DELUGED_USER --user $DELUGED_USER --umask $UMASK -- $DAEMON1_ARGS&lt;br /&gt;
    RETVAL1=&amp;quot;$?&amp;quot;&lt;br /&gt;
         sleep 2&lt;br /&gt;
    start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --make-pidfile --exec $DAEMON2 \&lt;br /&gt;
       --chuid $DELUGED_USER --user $DELUGED_USER --umask $UMASK -- $DAEMON2_ARGS&lt;br /&gt;
    RETVAL2=&amp;quot;$?&amp;quot;&lt;br /&gt;
    [ &amp;quot;$RETVAL1&amp;quot; = &amp;quot;0&amp;quot; -a &amp;quot;$RETVAL2&amp;quot; = &amp;quot;0&amp;quot; ] || return 2&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 #&lt;br /&gt;
 # Function that stops the daemon/service&lt;br /&gt;
 #&lt;br /&gt;
 do_stop()&lt;br /&gt;
 {&lt;br /&gt;
    # Return&lt;br /&gt;
    #   0 if daemon has been stopped&lt;br /&gt;
    #   1 if daemon was already stopped&lt;br /&gt;
    #   2 if daemon could not be stopped&lt;br /&gt;
    #   other if a failure occurred&lt;br /&gt;
 &lt;br /&gt;
    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $DELUGED_USER --pidfile $PIDFILE2&lt;br /&gt;
    RETVAL2=&amp;quot;$?&amp;quot;&lt;br /&gt;
    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $DELUGED_USER --pidfile $PIDFILE1&lt;br /&gt;
    RETVAL1=&amp;quot;$?&amp;quot;&lt;br /&gt;
    [ &amp;quot;$RETVAL1&amp;quot; = &amp;quot;2&amp;quot; -o &amp;quot;$RETVAL2&amp;quot; = &amp;quot;2&amp;quot; ] &amp;amp;&amp;amp; return 2&lt;br /&gt;
 &lt;br /&gt;
    rm -f $PIDFILE1 $PIDFILE2&lt;br /&gt;
 &lt;br /&gt;
    [ &amp;quot;$RETVAL1&amp;quot; = &amp;quot;0&amp;quot; -a &amp;quot;$RETVAL2&amp;quot; = &amp;quot;0&amp;quot; ] &amp;amp;&amp;amp; return 0 || return 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
    [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_daemon_msg &amp;quot;Starting $DESC&amp;quot; &amp;quot;$NAME1&amp;quot;&lt;br /&gt;
    do_start&lt;br /&gt;
    case &amp;quot;$?&amp;quot; in&lt;br /&gt;
       0|1) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 0 ;;&lt;br /&gt;
       2) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 1 ;;&lt;br /&gt;
    esac&lt;br /&gt;
    ;;&lt;br /&gt;
   stop)&lt;br /&gt;
    [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_daemon_msg &amp;quot;Stopping $DESC&amp;quot; &amp;quot;$NAME1&amp;quot;&lt;br /&gt;
    do_stop&lt;br /&gt;
    case &amp;quot;$?&amp;quot; in&lt;br /&gt;
       0|1) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 0 ;;&lt;br /&gt;
       2) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 1 ;;&lt;br /&gt;
    esac&lt;br /&gt;
    ;;&lt;br /&gt;
   restart|force-reload)&lt;br /&gt;
    log_daemon_msg &amp;quot;Restarting $DESC&amp;quot; &amp;quot;$NAME1&amp;quot;&lt;br /&gt;
    do_stop&lt;br /&gt;
    case &amp;quot;$?&amp;quot; in&lt;br /&gt;
      0|1)&lt;br /&gt;
       do_start&lt;br /&gt;
       case &amp;quot;$?&amp;quot; in&lt;br /&gt;
          0) log_end_msg 0 ;;&lt;br /&gt;
          1) log_end_msg 1 ;; # Old process is still running&lt;br /&gt;
          *) log_end_msg 1 ;; # Failed to start&lt;br /&gt;
       esac&lt;br /&gt;
       ;;&lt;br /&gt;
      *)&lt;br /&gt;
         # Failed to stop&lt;br /&gt;
       log_end_msg 1&lt;br /&gt;
       ;;&lt;br /&gt;
    esac&lt;br /&gt;
    ;;&lt;br /&gt;
   *)&lt;br /&gt;
    echo &amp;quot;Usage: $SCRIPTNAME {start|stop|restart|force-reload}&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
    exit 3&lt;br /&gt;
    ;;&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 :&lt;br /&gt;
*Make file executable&lt;br /&gt;
 CHMOD 755 /etc/init.d/deluge-daemon&lt;br /&gt;
*Auto start after reboot&lt;br /&gt;
 update-rc.d deluge-daemon defaults&lt;br /&gt;
*View Web Interface&lt;br /&gt;
:Default password is &#039;&#039;deluge&#039;&#039;&lt;br /&gt;
 http://servername:8112/&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
The configuration through the web interface doesn&#039;t always work. I found it easier and more reliable to manually edit the core.conf file.&amp;lt;br&amp;gt;&lt;br /&gt;
This configuration file is also currently setup for Private Trackers, so DHT/PEX options are disabled.&amp;lt;br&amp;gt;&lt;br /&gt;
*nano /root/.config/deluge/core.conf&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;file&amp;quot;: 1, &lt;br /&gt;
   &amp;quot;format&amp;quot;: 1&lt;br /&gt;
 }{&lt;br /&gt;
   &amp;quot;info_sent&amp;quot;: 0.0, &lt;br /&gt;
   &amp;quot;lsd&amp;quot;: false, &lt;br /&gt;
   &amp;quot;send_info&amp;quot;: false, &lt;br /&gt;
   &amp;quot;move_completed_path&amp;quot;: &amp;quot;/root&amp;quot;, &lt;br /&gt;
   &amp;quot;enc_in_policy&amp;quot;: 1, &lt;br /&gt;
   &amp;quot;queue_new_to_top&amp;quot;: false, &lt;br /&gt;
   &amp;quot;ignore_limits_on_local_network&amp;quot;: true, &lt;br /&gt;
   &amp;quot;rate_limit_ip_overhead&amp;quot;: true, &lt;br /&gt;
   &amp;quot;daemon_port&amp;quot;: 58846, &lt;br /&gt;
   &amp;quot;natpmp&amp;quot;: false, &lt;br /&gt;
   &amp;quot;max_active_limit&amp;quot;: 8, &lt;br /&gt;
   &amp;quot;utpex&amp;quot;: false, &lt;br /&gt;
   &amp;quot;max_active_downloading&amp;quot;: 3, &lt;br /&gt;
   &amp;quot;max_active_seeding&amp;quot;: 5, &lt;br /&gt;
   &amp;quot;allow_remote&amp;quot;: false, &lt;br /&gt;
   &amp;quot;max_half_open_connections&amp;quot;: 50, &lt;br /&gt;
   &amp;quot;download_location&amp;quot;: &amp;quot;/var/local/torrents&amp;quot;, &lt;br /&gt;
   &amp;quot;compact_allocation&amp;quot;: false, &lt;br /&gt;
   &amp;quot;max_upload_speed&amp;quot;: 400.0, &lt;br /&gt;
   &amp;quot;cache_expiry&amp;quot;: 60, &lt;br /&gt;
   &amp;quot;prioritize_first_last_pieces&amp;quot;: false, &lt;br /&gt;
   &amp;quot;auto_managed&amp;quot;: true, &lt;br /&gt;
   &amp;quot;enc_level&amp;quot;: 2, &lt;br /&gt;
   &amp;quot;max_connections_per_second&amp;quot;: 20, &lt;br /&gt;
   &amp;quot;dont_count_slow_torrents&amp;quot;: false, &lt;br /&gt;
   &amp;quot;random_outgoing_ports&amp;quot;: true, &lt;br /&gt;
   &amp;quot;max_upload_slots_per_torrent&amp;quot;: -1, &lt;br /&gt;
   &amp;quot;new_release_check&amp;quot;: false, &lt;br /&gt;
   &amp;quot;enc_out_policy&amp;quot;: 1, &lt;br /&gt;
   &amp;quot;outgoing_ports&amp;quot;: [&lt;br /&gt;
     12345, &lt;br /&gt;
     12346&lt;br /&gt;
   ], &lt;br /&gt;
   &amp;quot;seed_time_limit&amp;quot;: 180, &lt;br /&gt;
   &amp;quot;cache_size&amp;quot;: 512, &lt;br /&gt;
   &amp;quot;share_ratio_limit&amp;quot;: 2.0, &lt;br /&gt;
   &amp;quot;max_download_speed&amp;quot;: 1200.0, &lt;br /&gt;
   &amp;quot;geoip_db_location&amp;quot;: &amp;quot;/usr/share/GeoIP/GeoIP.dat&amp;quot;, &lt;br /&gt;
   &amp;quot;torrentfiles_location&amp;quot;: &amp;quot;/root&amp;quot;, &lt;br /&gt;
   &amp;quot;stop_seed_at_ratio&amp;quot;: false, &lt;br /&gt;
   &amp;quot;peer_tos&amp;quot;: &amp;quot;0x00&amp;quot;, &lt;br /&gt;
   &amp;quot;listen_interface&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
   &amp;quot;upnp&amp;quot;: false, &lt;br /&gt;
   &amp;quot;max_download_speed_per_torrent&amp;quot;: -1, &lt;br /&gt;
   &amp;quot;max_upload_slots_global&amp;quot;: 6, &lt;br /&gt;
   &amp;quot;enabled_plugins&amp;quot;: [&lt;br /&gt;
     &amp;quot;AutoAdd&amp;quot;, &lt;br /&gt;
     &amp;quot;Blocklist&amp;quot;&lt;br /&gt;
   ], &lt;br /&gt;
   &amp;quot;random_port&amp;quot;: false, &lt;br /&gt;
   &amp;quot;autoadd_enable&amp;quot;: false, &lt;br /&gt;
   &amp;quot;max_connections_global&amp;quot;: 300, &lt;br /&gt;
   &amp;quot;enc_prefer_rc4&amp;quot;: true, &lt;br /&gt;
   &amp;quot;listen_ports&amp;quot;: [&lt;br /&gt;
     12345, &lt;br /&gt;
     12346&lt;br /&gt;
   ], &lt;br /&gt;
   &amp;quot;dht&amp;quot;: false, &lt;br /&gt;
   &amp;quot;stop_seed_ratio&amp;quot;: 2.0, &lt;br /&gt;
   &amp;quot;seed_time_ratio_limit&amp;quot;: 7.0, &lt;br /&gt;
   &amp;quot;max_upload_speed_per_torrent&amp;quot;: -1, &lt;br /&gt;
   &amp;quot;copy_torrent_file&amp;quot;: false, &lt;br /&gt;
   &amp;quot;del_copy_torrent_file&amp;quot;: false, &lt;br /&gt;
   &amp;quot;move_completed&amp;quot;: false, &lt;br /&gt;
   &amp;quot;proxies&amp;quot;: {&lt;br /&gt;
     &amp;quot;peer&amp;quot;: {&lt;br /&gt;
       &amp;quot;username&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;password&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;type&amp;quot;: 0, &lt;br /&gt;
       &amp;quot;hostname&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;port&amp;quot;: 8080&lt;br /&gt;
     }, &lt;br /&gt;
     &amp;quot;web_seed&amp;quot;: {&lt;br /&gt;
       &amp;quot;username&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;password&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;type&amp;quot;: 0, &lt;br /&gt;
       &amp;quot;hostname&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;port&amp;quot;: 8080&lt;br /&gt;
     }, &lt;br /&gt;
     &amp;quot;tracker&amp;quot;: {&lt;br /&gt;
       &amp;quot;username&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;password&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;type&amp;quot;: 0, &lt;br /&gt;
       &amp;quot;hostname&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;port&amp;quot;: 8080&lt;br /&gt;
     }, &lt;br /&gt;
     &amp;quot;dht&amp;quot;: {&lt;br /&gt;
       &amp;quot;username&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;password&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;type&amp;quot;: 0, &lt;br /&gt;
       &amp;quot;hostname&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;port&amp;quot;: 8080&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   &amp;quot;add_paused&amp;quot;: false, &lt;br /&gt;
   &amp;quot;max_connections_per_torrent&amp;quot;: -1, &lt;br /&gt;
   &amp;quot;remove_seed_at_ratio&amp;quot;: false, &lt;br /&gt;
   &amp;quot;autoadd_location&amp;quot;: &amp;quot;/root&amp;quot;, &lt;br /&gt;
   &amp;quot;plugins_location&amp;quot;: &amp;quot;/root/.config/deluge/plugins&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Apache Proxy Setup ====&lt;br /&gt;
This reverse proxy allows you to view the web interface without using the :8112/ definition. It makes it easier for the wife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Enable Modules&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
*nano /etc/apache2/conf.d/deluge.conf&lt;br /&gt;
 # Reverse-proxy deluge server into main server space&lt;br /&gt;
 ProxyRequests off&lt;br /&gt;
 ProxyPass /deluge/ http://127.0.0.1:8112/&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;Location /deluge/&amp;gt;&lt;br /&gt;
    ProxyPassReverse http://127.0.0.1:8112/deluge/&lt;br /&gt;
    ProxyPassReverseCookieDomain 127.0.0.1 localhost&lt;br /&gt;
    ProxyPassReverseCookiePath / /deluge/&lt;br /&gt;
    Order allow,deny&lt;br /&gt;
    Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
*View new deluge URL&lt;br /&gt;
 http://servername/deluge/&lt;br /&gt;
&lt;br /&gt;
== FlexGet Install ==&lt;br /&gt;
=== TheTVDB PreConfig ===&lt;br /&gt;
This is the online website that will actually be telling your RSS feeder what shows to look for.&amp;lt;br&amp;gt;&lt;br /&gt;
*Go signup for an account and then go back to your &amp;quot;Account&amp;quot; and get your &amp;quot;Account Identifier&amp;quot;. Write it down, you will need it in a little bit.&lt;br /&gt;
 http://thetvdb.com/&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
These instructions are based upon http://flexget.com/wiki/InstallWizard/Linux&amp;lt;br&amp;gt;&lt;br /&gt;
*Verify python installed&lt;br /&gt;
 sudo apt-get install python2.6&lt;br /&gt;
*Install setup tools&lt;br /&gt;
 sudo apt-get install python-setuptools&lt;br /&gt;
*Install FlexGet&lt;br /&gt;
 sudo easy_install flexget&lt;br /&gt;
*Verify Install&lt;br /&gt;
 flexget -V&lt;br /&gt;
*Setup Cron&lt;br /&gt;
I run it every 15 minutes, trackers can tolerate that.&lt;br /&gt;
 crontab -l&lt;br /&gt;
&lt;br /&gt;
 # FlexGet RSS torrent download&lt;br /&gt;
 00,15,30,45 * * * * /usr/local/bin/flexget --cron&lt;br /&gt;
&lt;br /&gt;
=== TVDB.com Configuration ===&lt;br /&gt;
This configuration style was based upon http://flexget.com/wiki/Cookbook/Series/DelugeThetvdbSeries&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;spaces are extremely important&#039;&#039;&#039;&lt;br /&gt;
* nano /root/.flexget/config.yml&lt;br /&gt;
&amp;lt;pre&amp;gt; presets:&lt;br /&gt;
   tv:&lt;br /&gt;
     import_series:&lt;br /&gt;
       from:&lt;br /&gt;
         thetvdb_favorites:&lt;br /&gt;
           account_id: C221005D4E1F6B79&lt;br /&gt;
       settings:&lt;br /&gt;
         min_quality: hdtv&lt;br /&gt;
         max_quality: 720p&lt;br /&gt;
     exists_series:&lt;br /&gt;
       - /var/local/storage/TV_Shows&lt;br /&gt;
       - /var/local/storage/torrents/.incomplete&lt;br /&gt;
     thetvdb_lookup: yes&lt;br /&gt;
     set:&lt;br /&gt;
       path: /var/local/storage/torrents/.incomplete&lt;br /&gt;
       movedone: &amp;quot;/var/local/storage/TV_Shows/{{ series_name }}/Season {{ series_season }}&amp;quot;&lt;br /&gt;
       content_filename: |&lt;br /&gt;
         {{ series_name }}.{{ series_id }}&lt;br /&gt;
         {% if ep_name|default(False) %}.{{ ep_name }} {% endif %}.{{ quality|upper }}&lt;br /&gt;
         {% if proper_count %} - proper{% if proper_count &amp;gt; 1 %}{{ proper_count }}{% endif %}{% endif %}&lt;br /&gt;
     deluge:&lt;br /&gt;
       main_file_only: yes&lt;br /&gt;
 &lt;br /&gt;
 feeds:&lt;br /&gt;
   feed1:&lt;br /&gt;
     rss: https://rssfeed1.com&lt;br /&gt;
     priority: 1&lt;br /&gt;
     preset: tv&lt;br /&gt;
 &lt;br /&gt;
   feed2:&lt;br /&gt;
     rss: http://rss.site2.com&lt;br /&gt;
     priority: 2&lt;br /&gt;
     preset: tv&lt;br /&gt;
 &lt;br /&gt;
   feed3:&lt;br /&gt;
     headers:&lt;br /&gt;
       cookie: uid=123456; pass=sdf651a651df84a98dg8r4g&lt;br /&gt;
     rss: http://www.feed3.org/rss.php&lt;br /&gt;
     priority: 3&lt;br /&gt;
     preset: tv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TRAKT.TV/IMDB Configuration ===&lt;br /&gt;
This configuration is for monitoring your favorites on http://trakt.tv/ and/or http://imdb.com/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feeds:&lt;br /&gt;
  seed_watchlist:&lt;br /&gt;
    # priority plugin is used so that this feed runs before the actual download feed&lt;br /&gt;
    priority: 1&lt;br /&gt;
    interval: 2 hours&lt;br /&gt;
    trakt_list:&lt;br /&gt;
      api_key: myapikey&lt;br /&gt;
      username: myusername&lt;br /&gt;
      movies: watchlist&lt;br /&gt;
    imdb_list:&lt;br /&gt;
      list: watchlist&lt;br /&gt;
      username: me@somewhere.com&lt;br /&gt;
      password: mypassword&lt;br /&gt;
    accept_all: yes&lt;br /&gt;
    queue_movies:&lt;br /&gt;
      quality: 720p bluray&lt;br /&gt;
      force: no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Full Configuration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
presets:&lt;br /&gt;
  global:&lt;br /&gt;
    deluge:&lt;br /&gt;
      main_file_only: yes&lt;br /&gt;
      path: /var/local/storage/torrents/.incomplete&lt;br /&gt;
    email:&lt;br /&gt;
      active: True&lt;br /&gt;
      from: mailer@nowhere.com&lt;br /&gt;
      to: toemail@mail.com&lt;br /&gt;
      smtp_host: smtp.gmail.com&lt;br /&gt;
      smtp_port: 587&lt;br /&gt;
      smtp_login: true&lt;br /&gt;
      smtp_username: user@gmail.com&lt;br /&gt;
      smtp_password: password&lt;br /&gt;
      smtp_tls: true&lt;br /&gt;
&lt;br /&gt;
  tv:&lt;br /&gt;
    #series_premiere: yes&lt;br /&gt;
    import_series:&lt;br /&gt;
      from:&lt;br /&gt;
        thetvdb_favorites:&lt;br /&gt;
          account_id: Csdfh516fghB79&lt;br /&gt;
      settings:&lt;br /&gt;
        quality: hdtv&lt;br /&gt;
        #min_quality: hdtv&lt;br /&gt;
        #max_quality: 720p&lt;br /&gt;
        propers: no&lt;br /&gt;
    exists_series:&lt;br /&gt;
      - /var/local/storage/TV_Shows&lt;br /&gt;
      - /var/local/storage/torrents/.incomplete&lt;br /&gt;
    thetvdb_lookup: yes&lt;br /&gt;
    set:&lt;br /&gt;
      #path: /var/local/storage/torrents/.incomplete&lt;br /&gt;
      movedone: &amp;quot;/var/local/storage/TV_Shows/{{ series_name }}/Season {{ series_season }}&amp;quot;&lt;br /&gt;
      content_filename: |&lt;br /&gt;
        {{ series_name }}.{{ series_id }}&lt;br /&gt;
        {% if ep_name|default(False) %}.{{ ep_name }} {% endif %}.{{ quality|upper }}&lt;br /&gt;
        {% if proper_count %} - proper{% if proper_count &amp;gt; 1 %}{{ proper_count }}{% endif %}{% endif %}&lt;br /&gt;
      label: tv&lt;br /&gt;
&lt;br /&gt;
  movies:&lt;br /&gt;
    imdb:&lt;br /&gt;
      min_score: 7.5&lt;br /&gt;
      min_votes: 10000&lt;br /&gt;
      min_year: 2009&lt;br /&gt;
      reject_genres:&lt;br /&gt;
        - News&lt;br /&gt;
        - Documentary&lt;br /&gt;
        - Horror&lt;br /&gt;
        - Biography&lt;br /&gt;
        - Reality-Tv&lt;br /&gt;
      accept_languages:&lt;br /&gt;
        - english&lt;br /&gt;
        - swedish&lt;br /&gt;
      reject_mpaa_ratings:&lt;br /&gt;
        - X&lt;br /&gt;
    content_filter:&lt;br /&gt;
      reject: &lt;br /&gt;
        - &#039;*.rar&#039;&lt;br /&gt;
        - &#039;*.wmv&#039;&lt;br /&gt;
    quality:&lt;br /&gt;
      max: 1080p&lt;br /&gt;
      min: 720p bluray&lt;br /&gt;
    content_size:&lt;br /&gt;
      max: 8000&lt;br /&gt;
      min: 1200&lt;br /&gt;
    regexp:&lt;br /&gt;
      from: title&lt;br /&gt;
      reject:&lt;br /&gt;
        - ts&lt;br /&gt;
        - hindi&lt;br /&gt;
        - german&lt;br /&gt;
    imdb_required: yes&lt;br /&gt;
    seen_movies: strict&lt;br /&gt;
    limit_new: 1&lt;br /&gt;
    exists_movie: &lt;br /&gt;
      - /var/local/storage/torrents/.incomplete&lt;br /&gt;
      - /var/local/storage/Movies/Feature_Films&lt;br /&gt;
      - &amp;quot;/var/local/storage/Movies/Disney Movies&amp;quot;&lt;br /&gt;
    set:&lt;br /&gt;
      movedone: /var/local/storage/torrents&lt;br /&gt;
      label: movie&lt;br /&gt;
      addpaused: yes&lt;br /&gt;
      ratio: 1&lt;br /&gt;
&lt;br /&gt;
feeds:&lt;br /&gt;
  feed1:&lt;br /&gt;
    rss: https://rssfeed1.com&lt;br /&gt;
    priority: 1&lt;br /&gt;
    preset: tv&lt;br /&gt;
&lt;br /&gt;
  feed2:&lt;br /&gt;
    rss: http://rss.site2.com&lt;br /&gt;
    priority: 2&lt;br /&gt;
    preset: tv&lt;br /&gt;
&lt;br /&gt;
  feed3:&lt;br /&gt;
    headers:&lt;br /&gt;
      cookie: uid=123456; pass=sdf651a651df84a98dg8r4g&lt;br /&gt;
    rss: http://www.feed3.org/rss.php&lt;br /&gt;
    priority: 3&lt;br /&gt;
    preset: tv&lt;br /&gt;
&lt;br /&gt;
  feed3:&lt;br /&gt;
    rss: http://rss.feed4.org/207&lt;br /&gt;
    priority: 4&lt;br /&gt;
    preset: movies&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting ====&lt;br /&gt;
*Check config&lt;br /&gt;
 #flexget -v --check&lt;br /&gt;
&lt;br /&gt;
*Test config&lt;br /&gt;
 #flexget -v --test&lt;br /&gt;
&lt;br /&gt;
*Manual run&lt;br /&gt;
 #flexget&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Flexget Options&lt;br /&gt;
 Usage: flexget [options]&lt;br /&gt;
 &lt;br /&gt;
 Options:&lt;br /&gt;
  -h, --help            show this help message and exit&lt;br /&gt;
  -V, --version         Print FlexGet version and exit.&lt;br /&gt;
  --bugreport           Use this option to create a detailed bug report, note&lt;br /&gt;
                        that the output might contain PRIVATE data, so edit&lt;br /&gt;
                        that out&lt;br /&gt;
  -c CONFIG             Specify configuration file. Default is config.yml&lt;br /&gt;
  --test                Verbose what would happen on normal execution.&lt;br /&gt;
  --check               Validate configuration file and print errors.&lt;br /&gt;
  --learn               Matches are not downloaded but will be skipped in the&lt;br /&gt;
                        future.&lt;br /&gt;
  --no-cache            Disable caches. Works only in plugins that have&lt;br /&gt;
                        explicit support.&lt;br /&gt;
  --reset               DANGEROUS. Obliterates the database and runs with&lt;br /&gt;
                        learn in order to to regain useful state.&lt;br /&gt;
  --cron                Disables stdout and stderr output, log file used.&lt;br /&gt;
                        Reduces logging level slightly.&lt;br /&gt;
  --db-cleanup          Forces the database cleanup event to run right now.&lt;br /&gt;
  --archive-search=TXT  Search from the archive.&lt;br /&gt;
  --archive-inject      Inject entries from the archive into a feed where it&lt;br /&gt;
                        was archived from. Usage: ID[,ID] [FORCE]&lt;br /&gt;
  --search-plugins      List supported search plugins.&lt;br /&gt;
  --preset=NAME         Execute feeds with given preset.&lt;br /&gt;
  -v, --verbose         Verbose undecided entries.&lt;br /&gt;
  --try-regexp          Try regular expressions interactively.&lt;br /&gt;
  --stop-waiting=NAME   Stop timeframe for a given series.&lt;br /&gt;
  --disable-advancement&lt;br /&gt;
                        Disable episode advancement for this run.&lt;br /&gt;
  --history             List 50 latest accepted entries.&lt;br /&gt;
  --dl-path=PATH        Override path for download plugin. Applies to all&lt;br /&gt;
                        executed feeds.&lt;br /&gt;
  --dump                Display all feed entries&lt;br /&gt;
  --inject              Injects entry to all executed feeds: &amp;lt;TITLE&amp;gt; [URL]&lt;br /&gt;
                        [ACCEPT] [FORCE]&lt;br /&gt;
  --tail-reset=FILE     Reset tail position for a file.&lt;br /&gt;
  --cli-config=PARAMS   Configuration parameters trough commandline. See --doc&lt;br /&gt;
                        cli_config.&lt;br /&gt;
  --series              Display series summary.&lt;br /&gt;
  --series-forget       Remove complete series or single episode from&lt;br /&gt;
                        database: &amp;lt;NAME&amp;gt; [EPISODE]&lt;br /&gt;
  --plugins             Print registered plugins summary&lt;br /&gt;
  --doc=PLUGIN          Display plugin documentation. See also --plugins.&lt;br /&gt;
  --movie-queue         (add|del|list|downloaded)&lt;br /&gt;
                        [NAME|IMDB_ID|tmdb_id=TMDB_ID] [QUALITY] [FORCE]&lt;br /&gt;
  --now                 Ignore interval(s)&lt;br /&gt;
  --feed=FEED           Run only specified feed.&lt;br /&gt;
  --forget=FEED|VALUE   Forget feed (completely) or given title or url.&lt;br /&gt;
  --seen=VALUE          Add title or url to what has been seen in feeds.&lt;br /&gt;
  --seen-search=VALUE   Search given text from seen database.&lt;br /&gt;
  --repair-seen-movies  Repair seen movies database (required only when&lt;br /&gt;
                        upgrading from old problematic version)&lt;br /&gt;
  --failed              List recently failed entries.&lt;br /&gt;
  --clear               Clear recently failed list.&lt;br /&gt;
  --forget-rejected     Forget all previous rejections so entries can be&lt;br /&gt;
                        processed again.&lt;br /&gt;
&lt;br /&gt;
=== XBMC Notifications ===&lt;br /&gt;
*Goal is to send notifications to XBMC interface when a torrent is finished and ready to watch.&lt;br /&gt;
:&#039;&#039;must use URL syntax, white space=%20&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exec: curl -G &amp;quot;&#039;http://localhost:8080/xbmcCmds/xbmcHttp?command=ExecBuiltIn(Notification(FLEXGET,New%20Torrent%20Downloaded!,20000))&#039;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Deluge&amp;diff=2709</id>
		<title>Deluge</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Deluge&amp;diff=2709"/>
		<updated>2022-11-15T18:01:02Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: /* SystemD deluge-web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a howto for setting up Deluge on a headless Ubuntu(natty) server with RSS automatic feeds for TV shows with multiple trackers and fallback video qualities. The RSS feeder also will pull out the actual TV show file, rename it, and put it in a named directory structure.&lt;br /&gt;
&lt;br /&gt;
== Deluge Install ==&lt;br /&gt;
*Version 1.3.3 is in the repo as of this writing(20111011)&lt;br /&gt;
 sudo add-apt-repository ppa:deluge-team/ppa&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install deluged deluge-web&lt;br /&gt;
&lt;br /&gt;
=== Startup Script ===&lt;br /&gt;
I run deluge as root to make it easier, I know it&#039;s insecure, I don&#039;t care.&amp;lt;p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Default file ====&lt;br /&gt;
*nano /etc/default/deluge-daemon&lt;br /&gt;
 #Configuration for /etc/init.d/deluge-daemon&lt;br /&gt;
 &lt;br /&gt;
 # The init.d script will only run if this variable non-empty.&lt;br /&gt;
 DELUGED_USER=&amp;quot;root&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Should we run at startup?&lt;br /&gt;
 RUN_AT_STARTUP=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Create log directories&lt;br /&gt;
 mkdir -p /var/log/deluge/daemon&lt;br /&gt;
 mkdir -p /var/log/deluge/web&lt;br /&gt;
 chown -R user:user /var/log/deluge&lt;br /&gt;
&lt;br /&gt;
==== SystemD deluged ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Deluge Bittorrent Client Daemon&lt;br /&gt;
After=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=root&lt;br /&gt;
Group=root&lt;br /&gt;
UMask=000&lt;br /&gt;
&lt;br /&gt;
ExecStart=/bin/ip netns exec vpn /usr/bin/deluged -d -i 0.0.0.0 -u 10.1.1.2 -l /var/log/deluged.log -L info&lt;br /&gt;
&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
&lt;br /&gt;
# Configures the time to wait before service is stopped forcefully.&lt;br /&gt;
TimeoutStopSec=300&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SystemD deluge-web ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Deluge Bittorrent Client Web Interface&lt;br /&gt;
After=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=root&lt;br /&gt;
Group=root&lt;br /&gt;
UMask=027&lt;br /&gt;
ExecStart=/usr/bin/deluge-web -i 127.0.0.1 -l /var/log/deluge/deluge-web.log -L info -d&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Init.d file ====&lt;br /&gt;
*nano /etc/init.d/deluge-daemon&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 ### BEGIN INIT INFO&lt;br /&gt;
 # Provides:          deluge-daemon&lt;br /&gt;
 # Required-Start:    $local_fs $remote_fs&lt;br /&gt;
 # Required-Stop:     $local_fs $remote_fs&lt;br /&gt;
 # Should-Start:      $network&lt;br /&gt;
 # Should-Stop:       $network&lt;br /&gt;
 # Default-Start:     2 3 4 5&lt;br /&gt;
 # Default-Stop:      0 1 6&lt;br /&gt;
 # Short-Description: Daemonized version of deluge and webui.&lt;br /&gt;
 # Description:       Starts the deluge daemon with the user specified in&lt;br /&gt;
 #                    /etc/default/deluge-daemon.&lt;br /&gt;
 ### END INIT INFO&lt;br /&gt;
 &lt;br /&gt;
 # Author: Adolfo R. Brandes &lt;br /&gt;
 &lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 DESC=&amp;quot;Deluge Daemon&amp;quot;&lt;br /&gt;
 NAME1=&amp;quot;deluged&amp;quot;&lt;br /&gt;
 NAME2=&amp;quot;deluge&amp;quot;&lt;br /&gt;
 DAEMON1=/usr/bin/deluged&lt;br /&gt;
 DAEMON1_ARGS=&amp;quot;-d -L warning -l /var/log/deluge/daemon/warning.log&amp;quot;             # Consult `man deluged` for  more options&lt;br /&gt;
 DAEMON2=/usr/bin/deluge-web&lt;br /&gt;
 DAEMON2_ARGS=&amp;quot;-L warning -l /var/log/deluge/web/warning.log -b /deluge&amp;quot;               # Consult `man deluge-web` for more options&lt;br /&gt;
 PIDFILE1=/var/run/$NAME1.pid&lt;br /&gt;
 PIDFILE2=/var/run/$NAME2.pid&lt;br /&gt;
 UMASK=022                     # Change this to 0 if running deluged as its own user&lt;br /&gt;
 PKGNAME=deluge-daemon&lt;br /&gt;
 SCRIPTNAME=/etc/init.d/$PKGNAME&lt;br /&gt;
 &lt;br /&gt;
 # Exit if the package is not installed&lt;br /&gt;
 [ -x &amp;quot;$DAEMON1&amp;quot; -a -x &amp;quot;$DAEMON2&amp;quot; ] || exit 0&lt;br /&gt;
 &lt;br /&gt;
 # Read configuration variable file if it is present&lt;br /&gt;
 [ -r /etc/default/$PKGNAME ] &amp;amp;&amp;amp; . /etc/default/$PKGNAME&lt;br /&gt;
 &lt;br /&gt;
 # Load the VERBOSE setting and other rcS variables&lt;br /&gt;
 [ -f /etc/default/rcS ] &amp;amp;&amp;amp; . /etc/default/rcS&lt;br /&gt;
 &lt;br /&gt;
 # Define LSB log_* functions.&lt;br /&gt;
 # Depend on lsb-base (&amp;gt;= 3.0-6) to ensure that this file is present.&lt;br /&gt;
 . /lib/lsb/init-functions&lt;br /&gt;
 &lt;br /&gt;
 if [ -z &amp;quot;$RUN_AT_STARTUP&amp;quot; -o &amp;quot;$RUN_AT_STARTUP&amp;quot; != &amp;quot;YES&amp;quot; ]&lt;br /&gt;
 then&lt;br /&gt;
    log_warning_msg &amp;quot;Not starting $PKGNAME, edit /etc/default/$PKGNAME to start it.&amp;quot;&lt;br /&gt;
    exit 0&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 if [ -z &amp;quot;$DELUGED_USER&amp;quot; ]&lt;br /&gt;
 then&lt;br /&gt;
     log_warning_msg &amp;quot;Not starting $PKGNAME, DELUGED_USER not set in /etc/default/$PKGNAME.&amp;quot;&lt;br /&gt;
     exit 0&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 #&lt;br /&gt;
 # Function that starts the daemon/service&lt;br /&gt;
 #&lt;br /&gt;
 do_start()&lt;br /&gt;
 {&lt;br /&gt;
    # Return&lt;br /&gt;
    #   0 if daemon has been started&lt;br /&gt;
    #   1 if daemon was already running&lt;br /&gt;
    #   2 if daemon could not be started&lt;br /&gt;
    start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --exec $DAEMON1 \&lt;br /&gt;
       --chuid $DELUGED_USER --user $DELUGED_USER --umask $UMASK --test &amp;gt; /dev/null&lt;br /&gt;
    RETVAL1=&amp;quot;$?&amp;quot;&lt;br /&gt;
    start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --exec $DAEMON2 \&lt;br /&gt;
       --chuid $DELUGED_USER --user $DELUGED_USER --umask $UMASK --test &amp;gt; /dev/null&lt;br /&gt;
    RETVAL2=&amp;quot;$?&amp;quot;&lt;br /&gt;
    [ &amp;quot;$RETVAL1&amp;quot; = &amp;quot;0&amp;quot; -a &amp;quot;$RETVAL2&amp;quot; = &amp;quot;0&amp;quot; ] || return 1&lt;br /&gt;
 &lt;br /&gt;
    start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --make-pidfile --exec $DAEMON1 \&lt;br /&gt;
       --chuid $DELUGED_USER --user $DELUGED_USER --umask $UMASK -- $DAEMON1_ARGS&lt;br /&gt;
    RETVAL1=&amp;quot;$?&amp;quot;&lt;br /&gt;
         sleep 2&lt;br /&gt;
    start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --make-pidfile --exec $DAEMON2 \&lt;br /&gt;
       --chuid $DELUGED_USER --user $DELUGED_USER --umask $UMASK -- $DAEMON2_ARGS&lt;br /&gt;
    RETVAL2=&amp;quot;$?&amp;quot;&lt;br /&gt;
    [ &amp;quot;$RETVAL1&amp;quot; = &amp;quot;0&amp;quot; -a &amp;quot;$RETVAL2&amp;quot; = &amp;quot;0&amp;quot; ] || return 2&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 #&lt;br /&gt;
 # Function that stops the daemon/service&lt;br /&gt;
 #&lt;br /&gt;
 do_stop()&lt;br /&gt;
 {&lt;br /&gt;
    # Return&lt;br /&gt;
    #   0 if daemon has been stopped&lt;br /&gt;
    #   1 if daemon was already stopped&lt;br /&gt;
    #   2 if daemon could not be stopped&lt;br /&gt;
    #   other if a failure occurred&lt;br /&gt;
 &lt;br /&gt;
    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $DELUGED_USER --pidfile $PIDFILE2&lt;br /&gt;
    RETVAL2=&amp;quot;$?&amp;quot;&lt;br /&gt;
    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $DELUGED_USER --pidfile $PIDFILE1&lt;br /&gt;
    RETVAL1=&amp;quot;$?&amp;quot;&lt;br /&gt;
    [ &amp;quot;$RETVAL1&amp;quot; = &amp;quot;2&amp;quot; -o &amp;quot;$RETVAL2&amp;quot; = &amp;quot;2&amp;quot; ] &amp;amp;&amp;amp; return 2&lt;br /&gt;
 &lt;br /&gt;
    rm -f $PIDFILE1 $PIDFILE2&lt;br /&gt;
 &lt;br /&gt;
    [ &amp;quot;$RETVAL1&amp;quot; = &amp;quot;0&amp;quot; -a &amp;quot;$RETVAL2&amp;quot; = &amp;quot;0&amp;quot; ] &amp;amp;&amp;amp; return 0 || return 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
    [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_daemon_msg &amp;quot;Starting $DESC&amp;quot; &amp;quot;$NAME1&amp;quot;&lt;br /&gt;
    do_start&lt;br /&gt;
    case &amp;quot;$?&amp;quot; in&lt;br /&gt;
       0|1) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 0 ;;&lt;br /&gt;
       2) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 1 ;;&lt;br /&gt;
    esac&lt;br /&gt;
    ;;&lt;br /&gt;
   stop)&lt;br /&gt;
    [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_daemon_msg &amp;quot;Stopping $DESC&amp;quot; &amp;quot;$NAME1&amp;quot;&lt;br /&gt;
    do_stop&lt;br /&gt;
    case &amp;quot;$?&amp;quot; in&lt;br /&gt;
       0|1) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 0 ;;&lt;br /&gt;
       2) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 1 ;;&lt;br /&gt;
    esac&lt;br /&gt;
    ;;&lt;br /&gt;
   restart|force-reload)&lt;br /&gt;
    log_daemon_msg &amp;quot;Restarting $DESC&amp;quot; &amp;quot;$NAME1&amp;quot;&lt;br /&gt;
    do_stop&lt;br /&gt;
    case &amp;quot;$?&amp;quot; in&lt;br /&gt;
      0|1)&lt;br /&gt;
       do_start&lt;br /&gt;
       case &amp;quot;$?&amp;quot; in&lt;br /&gt;
          0) log_end_msg 0 ;;&lt;br /&gt;
          1) log_end_msg 1 ;; # Old process is still running&lt;br /&gt;
          *) log_end_msg 1 ;; # Failed to start&lt;br /&gt;
       esac&lt;br /&gt;
       ;;&lt;br /&gt;
      *)&lt;br /&gt;
         # Failed to stop&lt;br /&gt;
       log_end_msg 1&lt;br /&gt;
       ;;&lt;br /&gt;
    esac&lt;br /&gt;
    ;;&lt;br /&gt;
   *)&lt;br /&gt;
    echo &amp;quot;Usage: $SCRIPTNAME {start|stop|restart|force-reload}&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
    exit 3&lt;br /&gt;
    ;;&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 :&lt;br /&gt;
*Make file executable&lt;br /&gt;
 CHMOD 755 /etc/init.d/deluge-daemon&lt;br /&gt;
*Auto start after reboot&lt;br /&gt;
 update-rc.d deluge-daemon defaults&lt;br /&gt;
*View Web Interface&lt;br /&gt;
:Default password is &#039;&#039;deluge&#039;&#039;&lt;br /&gt;
 http://servername:8112/&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
The configuration through the web interface doesn&#039;t always work. I found it easier and more reliable to manually edit the core.conf file.&amp;lt;br&amp;gt;&lt;br /&gt;
This configuration file is also currently setup for Private Trackers, so DHT/PEX options are disabled.&amp;lt;br&amp;gt;&lt;br /&gt;
*nano /root/.config/deluge/core.conf&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;file&amp;quot;: 1, &lt;br /&gt;
   &amp;quot;format&amp;quot;: 1&lt;br /&gt;
 }{&lt;br /&gt;
   &amp;quot;info_sent&amp;quot;: 0.0, &lt;br /&gt;
   &amp;quot;lsd&amp;quot;: false, &lt;br /&gt;
   &amp;quot;send_info&amp;quot;: false, &lt;br /&gt;
   &amp;quot;move_completed_path&amp;quot;: &amp;quot;/root&amp;quot;, &lt;br /&gt;
   &amp;quot;enc_in_policy&amp;quot;: 1, &lt;br /&gt;
   &amp;quot;queue_new_to_top&amp;quot;: false, &lt;br /&gt;
   &amp;quot;ignore_limits_on_local_network&amp;quot;: true, &lt;br /&gt;
   &amp;quot;rate_limit_ip_overhead&amp;quot;: true, &lt;br /&gt;
   &amp;quot;daemon_port&amp;quot;: 58846, &lt;br /&gt;
   &amp;quot;natpmp&amp;quot;: false, &lt;br /&gt;
   &amp;quot;max_active_limit&amp;quot;: 8, &lt;br /&gt;
   &amp;quot;utpex&amp;quot;: false, &lt;br /&gt;
   &amp;quot;max_active_downloading&amp;quot;: 3, &lt;br /&gt;
   &amp;quot;max_active_seeding&amp;quot;: 5, &lt;br /&gt;
   &amp;quot;allow_remote&amp;quot;: false, &lt;br /&gt;
   &amp;quot;max_half_open_connections&amp;quot;: 50, &lt;br /&gt;
   &amp;quot;download_location&amp;quot;: &amp;quot;/var/local/torrents&amp;quot;, &lt;br /&gt;
   &amp;quot;compact_allocation&amp;quot;: false, &lt;br /&gt;
   &amp;quot;max_upload_speed&amp;quot;: 400.0, &lt;br /&gt;
   &amp;quot;cache_expiry&amp;quot;: 60, &lt;br /&gt;
   &amp;quot;prioritize_first_last_pieces&amp;quot;: false, &lt;br /&gt;
   &amp;quot;auto_managed&amp;quot;: true, &lt;br /&gt;
   &amp;quot;enc_level&amp;quot;: 2, &lt;br /&gt;
   &amp;quot;max_connections_per_second&amp;quot;: 20, &lt;br /&gt;
   &amp;quot;dont_count_slow_torrents&amp;quot;: false, &lt;br /&gt;
   &amp;quot;random_outgoing_ports&amp;quot;: true, &lt;br /&gt;
   &amp;quot;max_upload_slots_per_torrent&amp;quot;: -1, &lt;br /&gt;
   &amp;quot;new_release_check&amp;quot;: false, &lt;br /&gt;
   &amp;quot;enc_out_policy&amp;quot;: 1, &lt;br /&gt;
   &amp;quot;outgoing_ports&amp;quot;: [&lt;br /&gt;
     12345, &lt;br /&gt;
     12346&lt;br /&gt;
   ], &lt;br /&gt;
   &amp;quot;seed_time_limit&amp;quot;: 180, &lt;br /&gt;
   &amp;quot;cache_size&amp;quot;: 512, &lt;br /&gt;
   &amp;quot;share_ratio_limit&amp;quot;: 2.0, &lt;br /&gt;
   &amp;quot;max_download_speed&amp;quot;: 1200.0, &lt;br /&gt;
   &amp;quot;geoip_db_location&amp;quot;: &amp;quot;/usr/share/GeoIP/GeoIP.dat&amp;quot;, &lt;br /&gt;
   &amp;quot;torrentfiles_location&amp;quot;: &amp;quot;/root&amp;quot;, &lt;br /&gt;
   &amp;quot;stop_seed_at_ratio&amp;quot;: false, &lt;br /&gt;
   &amp;quot;peer_tos&amp;quot;: &amp;quot;0x00&amp;quot;, &lt;br /&gt;
   &amp;quot;listen_interface&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
   &amp;quot;upnp&amp;quot;: false, &lt;br /&gt;
   &amp;quot;max_download_speed_per_torrent&amp;quot;: -1, &lt;br /&gt;
   &amp;quot;max_upload_slots_global&amp;quot;: 6, &lt;br /&gt;
   &amp;quot;enabled_plugins&amp;quot;: [&lt;br /&gt;
     &amp;quot;AutoAdd&amp;quot;, &lt;br /&gt;
     &amp;quot;Blocklist&amp;quot;&lt;br /&gt;
   ], &lt;br /&gt;
   &amp;quot;random_port&amp;quot;: false, &lt;br /&gt;
   &amp;quot;autoadd_enable&amp;quot;: false, &lt;br /&gt;
   &amp;quot;max_connections_global&amp;quot;: 300, &lt;br /&gt;
   &amp;quot;enc_prefer_rc4&amp;quot;: true, &lt;br /&gt;
   &amp;quot;listen_ports&amp;quot;: [&lt;br /&gt;
     12345, &lt;br /&gt;
     12346&lt;br /&gt;
   ], &lt;br /&gt;
   &amp;quot;dht&amp;quot;: false, &lt;br /&gt;
   &amp;quot;stop_seed_ratio&amp;quot;: 2.0, &lt;br /&gt;
   &amp;quot;seed_time_ratio_limit&amp;quot;: 7.0, &lt;br /&gt;
   &amp;quot;max_upload_speed_per_torrent&amp;quot;: -1, &lt;br /&gt;
   &amp;quot;copy_torrent_file&amp;quot;: false, &lt;br /&gt;
   &amp;quot;del_copy_torrent_file&amp;quot;: false, &lt;br /&gt;
   &amp;quot;move_completed&amp;quot;: false, &lt;br /&gt;
   &amp;quot;proxies&amp;quot;: {&lt;br /&gt;
     &amp;quot;peer&amp;quot;: {&lt;br /&gt;
       &amp;quot;username&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;password&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;type&amp;quot;: 0, &lt;br /&gt;
       &amp;quot;hostname&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;port&amp;quot;: 8080&lt;br /&gt;
     }, &lt;br /&gt;
     &amp;quot;web_seed&amp;quot;: {&lt;br /&gt;
       &amp;quot;username&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;password&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;type&amp;quot;: 0, &lt;br /&gt;
       &amp;quot;hostname&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;port&amp;quot;: 8080&lt;br /&gt;
     }, &lt;br /&gt;
     &amp;quot;tracker&amp;quot;: {&lt;br /&gt;
       &amp;quot;username&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;password&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;type&amp;quot;: 0, &lt;br /&gt;
       &amp;quot;hostname&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;port&amp;quot;: 8080&lt;br /&gt;
     }, &lt;br /&gt;
     &amp;quot;dht&amp;quot;: {&lt;br /&gt;
       &amp;quot;username&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;password&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;type&amp;quot;: 0, &lt;br /&gt;
       &amp;quot;hostname&amp;quot;: &amp;quot;&amp;quot;, &lt;br /&gt;
       &amp;quot;port&amp;quot;: 8080&lt;br /&gt;
     }&lt;br /&gt;
   }, &lt;br /&gt;
   &amp;quot;add_paused&amp;quot;: false, &lt;br /&gt;
   &amp;quot;max_connections_per_torrent&amp;quot;: -1, &lt;br /&gt;
   &amp;quot;remove_seed_at_ratio&amp;quot;: false, &lt;br /&gt;
   &amp;quot;autoadd_location&amp;quot;: &amp;quot;/root&amp;quot;, &lt;br /&gt;
   &amp;quot;plugins_location&amp;quot;: &amp;quot;/root/.config/deluge/plugins&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Apache Proxy Setup ====&lt;br /&gt;
This reverse proxy allows you to view the web interface without using the :8112/ definition. It makes it easier for the wife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Enable Modules&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
*nano /etc/apache2/conf.d/deluge.conf&lt;br /&gt;
 # Reverse-proxy deluge server into main server space&lt;br /&gt;
 ProxyRequests off&lt;br /&gt;
 ProxyPass /deluge/ http://127.0.0.1:8112/&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;Location /deluge/&amp;gt;&lt;br /&gt;
    ProxyPassReverse http://127.0.0.1:8112/deluge/&lt;br /&gt;
    ProxyPassReverseCookieDomain 127.0.0.1 localhost&lt;br /&gt;
    ProxyPassReverseCookiePath / /deluge/&lt;br /&gt;
    Order allow,deny&lt;br /&gt;
    Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
*View new deluge URL&lt;br /&gt;
 http://servername/deluge/&lt;br /&gt;
&lt;br /&gt;
== FlexGet Install ==&lt;br /&gt;
=== TheTVDB PreConfig ===&lt;br /&gt;
This is the online website that will actually be telling your RSS feeder what shows to look for.&amp;lt;br&amp;gt;&lt;br /&gt;
*Go signup for an account and then go back to your &amp;quot;Account&amp;quot; and get your &amp;quot;Account Identifier&amp;quot;. Write it down, you will need it in a little bit.&lt;br /&gt;
 http://thetvdb.com/&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
These instructions are based upon http://flexget.com/wiki/InstallWizard/Linux&amp;lt;br&amp;gt;&lt;br /&gt;
*Verify python installed&lt;br /&gt;
 sudo apt-get install python2.6&lt;br /&gt;
*Install setup tools&lt;br /&gt;
 sudo apt-get install python-setuptools&lt;br /&gt;
*Install FlexGet&lt;br /&gt;
 sudo easy_install flexget&lt;br /&gt;
*Verify Install&lt;br /&gt;
 flexget -V&lt;br /&gt;
*Setup Cron&lt;br /&gt;
I run it every 15 minutes, trackers can tolerate that.&lt;br /&gt;
 crontab -l&lt;br /&gt;
&lt;br /&gt;
 # FlexGet RSS torrent download&lt;br /&gt;
 00,15,30,45 * * * * /usr/local/bin/flexget --cron&lt;br /&gt;
&lt;br /&gt;
=== TVDB.com Configuration ===&lt;br /&gt;
This configuration style was based upon http://flexget.com/wiki/Cookbook/Series/DelugeThetvdbSeries&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;spaces are extremely important&#039;&#039;&#039;&lt;br /&gt;
* nano /root/.flexget/config.yml&lt;br /&gt;
&amp;lt;pre&amp;gt; presets:&lt;br /&gt;
   tv:&lt;br /&gt;
     import_series:&lt;br /&gt;
       from:&lt;br /&gt;
         thetvdb_favorites:&lt;br /&gt;
           account_id: C221005D4E1F6B79&lt;br /&gt;
       settings:&lt;br /&gt;
         min_quality: hdtv&lt;br /&gt;
         max_quality: 720p&lt;br /&gt;
     exists_series:&lt;br /&gt;
       - /var/local/storage/TV_Shows&lt;br /&gt;
       - /var/local/storage/torrents/.incomplete&lt;br /&gt;
     thetvdb_lookup: yes&lt;br /&gt;
     set:&lt;br /&gt;
       path: /var/local/storage/torrents/.incomplete&lt;br /&gt;
       movedone: &amp;quot;/var/local/storage/TV_Shows/{{ series_name }}/Season {{ series_season }}&amp;quot;&lt;br /&gt;
       content_filename: |&lt;br /&gt;
         {{ series_name }}.{{ series_id }}&lt;br /&gt;
         {% if ep_name|default(False) %}.{{ ep_name }} {% endif %}.{{ quality|upper }}&lt;br /&gt;
         {% if proper_count %} - proper{% if proper_count &amp;gt; 1 %}{{ proper_count }}{% endif %}{% endif %}&lt;br /&gt;
     deluge:&lt;br /&gt;
       main_file_only: yes&lt;br /&gt;
 &lt;br /&gt;
 feeds:&lt;br /&gt;
   feed1:&lt;br /&gt;
     rss: https://rssfeed1.com&lt;br /&gt;
     priority: 1&lt;br /&gt;
     preset: tv&lt;br /&gt;
 &lt;br /&gt;
   feed2:&lt;br /&gt;
     rss: http://rss.site2.com&lt;br /&gt;
     priority: 2&lt;br /&gt;
     preset: tv&lt;br /&gt;
 &lt;br /&gt;
   feed3:&lt;br /&gt;
     headers:&lt;br /&gt;
       cookie: uid=123456; pass=sdf651a651df84a98dg8r4g&lt;br /&gt;
     rss: http://www.feed3.org/rss.php&lt;br /&gt;
     priority: 3&lt;br /&gt;
     preset: tv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TRAKT.TV/IMDB Configuration ===&lt;br /&gt;
This configuration is for monitoring your favorites on http://trakt.tv/ and/or http://imdb.com/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feeds:&lt;br /&gt;
  seed_watchlist:&lt;br /&gt;
    # priority plugin is used so that this feed runs before the actual download feed&lt;br /&gt;
    priority: 1&lt;br /&gt;
    interval: 2 hours&lt;br /&gt;
    trakt_list:&lt;br /&gt;
      api_key: myapikey&lt;br /&gt;
      username: myusername&lt;br /&gt;
      movies: watchlist&lt;br /&gt;
    imdb_list:&lt;br /&gt;
      list: watchlist&lt;br /&gt;
      username: me@somewhere.com&lt;br /&gt;
      password: mypassword&lt;br /&gt;
    accept_all: yes&lt;br /&gt;
    queue_movies:&lt;br /&gt;
      quality: 720p bluray&lt;br /&gt;
      force: no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Full Configuration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
presets:&lt;br /&gt;
  global:&lt;br /&gt;
    deluge:&lt;br /&gt;
      main_file_only: yes&lt;br /&gt;
      path: /var/local/storage/torrents/.incomplete&lt;br /&gt;
    email:&lt;br /&gt;
      active: True&lt;br /&gt;
      from: mailer@nowhere.com&lt;br /&gt;
      to: toemail@mail.com&lt;br /&gt;
      smtp_host: smtp.gmail.com&lt;br /&gt;
      smtp_port: 587&lt;br /&gt;
      smtp_login: true&lt;br /&gt;
      smtp_username: user@gmail.com&lt;br /&gt;
      smtp_password: password&lt;br /&gt;
      smtp_tls: true&lt;br /&gt;
&lt;br /&gt;
  tv:&lt;br /&gt;
    #series_premiere: yes&lt;br /&gt;
    import_series:&lt;br /&gt;
      from:&lt;br /&gt;
        thetvdb_favorites:&lt;br /&gt;
          account_id: Csdfh516fghB79&lt;br /&gt;
      settings:&lt;br /&gt;
        quality: hdtv&lt;br /&gt;
        #min_quality: hdtv&lt;br /&gt;
        #max_quality: 720p&lt;br /&gt;
        propers: no&lt;br /&gt;
    exists_series:&lt;br /&gt;
      - /var/local/storage/TV_Shows&lt;br /&gt;
      - /var/local/storage/torrents/.incomplete&lt;br /&gt;
    thetvdb_lookup: yes&lt;br /&gt;
    set:&lt;br /&gt;
      #path: /var/local/storage/torrents/.incomplete&lt;br /&gt;
      movedone: &amp;quot;/var/local/storage/TV_Shows/{{ series_name }}/Season {{ series_season }}&amp;quot;&lt;br /&gt;
      content_filename: |&lt;br /&gt;
        {{ series_name }}.{{ series_id }}&lt;br /&gt;
        {% if ep_name|default(False) %}.{{ ep_name }} {% endif %}.{{ quality|upper }}&lt;br /&gt;
        {% if proper_count %} - proper{% if proper_count &amp;gt; 1 %}{{ proper_count }}{% endif %}{% endif %}&lt;br /&gt;
      label: tv&lt;br /&gt;
&lt;br /&gt;
  movies:&lt;br /&gt;
    imdb:&lt;br /&gt;
      min_score: 7.5&lt;br /&gt;
      min_votes: 10000&lt;br /&gt;
      min_year: 2009&lt;br /&gt;
      reject_genres:&lt;br /&gt;
        - News&lt;br /&gt;
        - Documentary&lt;br /&gt;
        - Horror&lt;br /&gt;
        - Biography&lt;br /&gt;
        - Reality-Tv&lt;br /&gt;
      accept_languages:&lt;br /&gt;
        - english&lt;br /&gt;
        - swedish&lt;br /&gt;
      reject_mpaa_ratings:&lt;br /&gt;
        - X&lt;br /&gt;
    content_filter:&lt;br /&gt;
      reject: &lt;br /&gt;
        - &#039;*.rar&#039;&lt;br /&gt;
        - &#039;*.wmv&#039;&lt;br /&gt;
    quality:&lt;br /&gt;
      max: 1080p&lt;br /&gt;
      min: 720p bluray&lt;br /&gt;
    content_size:&lt;br /&gt;
      max: 8000&lt;br /&gt;
      min: 1200&lt;br /&gt;
    regexp:&lt;br /&gt;
      from: title&lt;br /&gt;
      reject:&lt;br /&gt;
        - ts&lt;br /&gt;
        - hindi&lt;br /&gt;
        - german&lt;br /&gt;
    imdb_required: yes&lt;br /&gt;
    seen_movies: strict&lt;br /&gt;
    limit_new: 1&lt;br /&gt;
    exists_movie: &lt;br /&gt;
      - /var/local/storage/torrents/.incomplete&lt;br /&gt;
      - /var/local/storage/Movies/Feature_Films&lt;br /&gt;
      - &amp;quot;/var/local/storage/Movies/Disney Movies&amp;quot;&lt;br /&gt;
    set:&lt;br /&gt;
      movedone: /var/local/storage/torrents&lt;br /&gt;
      label: movie&lt;br /&gt;
      addpaused: yes&lt;br /&gt;
      ratio: 1&lt;br /&gt;
&lt;br /&gt;
feeds:&lt;br /&gt;
  feed1:&lt;br /&gt;
    rss: https://rssfeed1.com&lt;br /&gt;
    priority: 1&lt;br /&gt;
    preset: tv&lt;br /&gt;
&lt;br /&gt;
  feed2:&lt;br /&gt;
    rss: http://rss.site2.com&lt;br /&gt;
    priority: 2&lt;br /&gt;
    preset: tv&lt;br /&gt;
&lt;br /&gt;
  feed3:&lt;br /&gt;
    headers:&lt;br /&gt;
      cookie: uid=123456; pass=sdf651a651df84a98dg8r4g&lt;br /&gt;
    rss: http://www.feed3.org/rss.php&lt;br /&gt;
    priority: 3&lt;br /&gt;
    preset: tv&lt;br /&gt;
&lt;br /&gt;
  feed3:&lt;br /&gt;
    rss: http://rss.feed4.org/207&lt;br /&gt;
    priority: 4&lt;br /&gt;
    preset: movies&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting ====&lt;br /&gt;
*Check config&lt;br /&gt;
 #flexget -v --check&lt;br /&gt;
&lt;br /&gt;
*Test config&lt;br /&gt;
 #flexget -v --test&lt;br /&gt;
&lt;br /&gt;
*Manual run&lt;br /&gt;
 #flexget&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Flexget Options&lt;br /&gt;
 Usage: flexget [options]&lt;br /&gt;
 &lt;br /&gt;
 Options:&lt;br /&gt;
  -h, --help            show this help message and exit&lt;br /&gt;
  -V, --version         Print FlexGet version and exit.&lt;br /&gt;
  --bugreport           Use this option to create a detailed bug report, note&lt;br /&gt;
                        that the output might contain PRIVATE data, so edit&lt;br /&gt;
                        that out&lt;br /&gt;
  -c CONFIG             Specify configuration file. Default is config.yml&lt;br /&gt;
  --test                Verbose what would happen on normal execution.&lt;br /&gt;
  --check               Validate configuration file and print errors.&lt;br /&gt;
  --learn               Matches are not downloaded but will be skipped in the&lt;br /&gt;
                        future.&lt;br /&gt;
  --no-cache            Disable caches. Works only in plugins that have&lt;br /&gt;
                        explicit support.&lt;br /&gt;
  --reset               DANGEROUS. Obliterates the database and runs with&lt;br /&gt;
                        learn in order to to regain useful state.&lt;br /&gt;
  --cron                Disables stdout and stderr output, log file used.&lt;br /&gt;
                        Reduces logging level slightly.&lt;br /&gt;
  --db-cleanup          Forces the database cleanup event to run right now.&lt;br /&gt;
  --archive-search=TXT  Search from the archive.&lt;br /&gt;
  --archive-inject      Inject entries from the archive into a feed where it&lt;br /&gt;
                        was archived from. Usage: ID[,ID] [FORCE]&lt;br /&gt;
  --search-plugins      List supported search plugins.&lt;br /&gt;
  --preset=NAME         Execute feeds with given preset.&lt;br /&gt;
  -v, --verbose         Verbose undecided entries.&lt;br /&gt;
  --try-regexp          Try regular expressions interactively.&lt;br /&gt;
  --stop-waiting=NAME   Stop timeframe for a given series.&lt;br /&gt;
  --disable-advancement&lt;br /&gt;
                        Disable episode advancement for this run.&lt;br /&gt;
  --history             List 50 latest accepted entries.&lt;br /&gt;
  --dl-path=PATH        Override path for download plugin. Applies to all&lt;br /&gt;
                        executed feeds.&lt;br /&gt;
  --dump                Display all feed entries&lt;br /&gt;
  --inject              Injects entry to all executed feeds: &amp;lt;TITLE&amp;gt; [URL]&lt;br /&gt;
                        [ACCEPT] [FORCE]&lt;br /&gt;
  --tail-reset=FILE     Reset tail position for a file.&lt;br /&gt;
  --cli-config=PARAMS   Configuration parameters trough commandline. See --doc&lt;br /&gt;
                        cli_config.&lt;br /&gt;
  --series              Display series summary.&lt;br /&gt;
  --series-forget       Remove complete series or single episode from&lt;br /&gt;
                        database: &amp;lt;NAME&amp;gt; [EPISODE]&lt;br /&gt;
  --plugins             Print registered plugins summary&lt;br /&gt;
  --doc=PLUGIN          Display plugin documentation. See also --plugins.&lt;br /&gt;
  --movie-queue         (add|del|list|downloaded)&lt;br /&gt;
                        [NAME|IMDB_ID|tmdb_id=TMDB_ID] [QUALITY] [FORCE]&lt;br /&gt;
  --now                 Ignore interval(s)&lt;br /&gt;
  --feed=FEED           Run only specified feed.&lt;br /&gt;
  --forget=FEED|VALUE   Forget feed (completely) or given title or url.&lt;br /&gt;
  --seen=VALUE          Add title or url to what has been seen in feeds.&lt;br /&gt;
  --seen-search=VALUE   Search given text from seen database.&lt;br /&gt;
  --repair-seen-movies  Repair seen movies database (required only when&lt;br /&gt;
                        upgrading from old problematic version)&lt;br /&gt;
  --failed              List recently failed entries.&lt;br /&gt;
  --clear               Clear recently failed list.&lt;br /&gt;
  --forget-rejected     Forget all previous rejections so entries can be&lt;br /&gt;
                        processed again.&lt;br /&gt;
&lt;br /&gt;
=== XBMC Notifications ===&lt;br /&gt;
*Goal is to send notifications to XBMC interface when a torrent is finished and ready to watch.&lt;br /&gt;
:&#039;&#039;must use URL syntax, white space=%20&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exec: curl -G &amp;quot;&#039;http://localhost:8080/xbmcCmds/xbmcHttp?command=ExecBuiltIn(Notification(FLEXGET,New%20Torrent%20Downloaded!,20000))&#039;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Rooter&amp;diff=2708</id>
		<title>Rooter</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Rooter&amp;diff=2708"/>
		<updated>2022-04-20T14:58:26Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ROOter 4G LTE router firmware&lt;br /&gt;
== Custom Firmware Build ==&lt;br /&gt;
Ubuntu install&lt;br /&gt;
 sudo apt -y install build-essential libncurses5-dev python unzip gawk git curl jshon zip&lt;br /&gt;
These instructions are specific to WE826T (16M)&lt;br /&gt;
 cd /opt/&lt;br /&gt;
 git clone https://github.com/ofmodemsandmen/ROOterSource2102.git&lt;br /&gt;
 cd ROOterSource2102/&lt;br /&gt;
&lt;br /&gt;
Edit router-2102.json and add the following&lt;br /&gt;
        &amp;quot;WE826T&amp;quot;: {&lt;br /&gt;
                &amp;quot;details&amp;quot;: &amp;quot;ZBT WE826-T&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
                &amp;quot;build&amp;quot;: &amp;quot;2102&amp;quot;,&lt;br /&gt;
                &amp;quot;config&amp;quot;: &amp;quot;.config_we826t&amp;quot;,&lt;br /&gt;
                &amp;quot;image&amp;quot;: &amp;quot;openwrt-ramips-mt7620-zbtlink_zbt-we826-16m-squashfs-sysupgrade.bin&amp;quot;,&lt;br /&gt;
                &amp;quot;imagepath&amp;quot;: &amp;quot;/ramips/mt7620/&amp;quot;,&lt;br /&gt;
                &amp;quot;mod&amp;quot;: &amp;quot;ZBT-WE826T&amp;quot;,&lt;br /&gt;
                &amp;quot;ext&amp;quot;: &amp;quot;-upgrade.bin&amp;quot;,&lt;br /&gt;
                &amp;quot;addons&amp;quot;: [&amp;quot;readme.pdf&amp;quot;, &amp;quot;readmerecovery.txt&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;s/make V=s/make -j16 V=s/g&#039; build&lt;br /&gt;
&lt;br /&gt;
Run&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
 mv .config configfiles/.config_we826t&lt;br /&gt;
&lt;br /&gt;
New ROOter image should be in the following directory&lt;br /&gt;
 images/&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Rooter&amp;diff=2707</id>
		<title>Rooter</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Rooter&amp;diff=2707"/>
		<updated>2022-04-20T14:23:53Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ROOter 4G LTE router firmware&lt;br /&gt;
== Custom Firmware Build ==&lt;br /&gt;
Ubuntu install&lt;br /&gt;
 sudo apt -y install build-essential libncurses5-dev python unzip gawk git curl jshon zip&lt;br /&gt;
These instructions are specific to WE826T (16M)&lt;br /&gt;
 cd /opt/&lt;br /&gt;
 git clone https://github.com/ofmodemsandmen/ROOterSource2102.git&lt;br /&gt;
 cd ROOterSource2102/&lt;br /&gt;
&lt;br /&gt;
Edit router-2102.json and add the following&lt;br /&gt;
        &amp;quot;WE826T&amp;quot;: {&lt;br /&gt;
                &amp;quot;details&amp;quot;: &amp;quot;ZBT WE826-T&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
                &amp;quot;build&amp;quot;: &amp;quot;2102&amp;quot;,&lt;br /&gt;
                &amp;quot;config&amp;quot;: &amp;quot;.config_we826t&amp;quot;,&lt;br /&gt;
                &amp;quot;image&amp;quot;: &amp;quot;openwrt-ramips-mt7620-zbtlink_zbt-we826-16m-squashfs-sysupgrade.bin&amp;quot;,&lt;br /&gt;
                &amp;quot;imagepath&amp;quot;: &amp;quot;/ramips/mt7620/&amp;quot;,&lt;br /&gt;
                &amp;quot;mod&amp;quot;: &amp;quot;ZBT-WE826T&amp;quot;,&lt;br /&gt;
                &amp;quot;ext&amp;quot;: &amp;quot;-upgrade.bin&amp;quot;,&lt;br /&gt;
                &amp;quot;addons&amp;quot;: [&amp;quot;readme.pdf&amp;quot;, &amp;quot;readmerecovery.txt&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
 sed &#039;s/make V=s/make -j16 V=s/g&#039; build&lt;br /&gt;
&lt;br /&gt;
Run&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
 mv .config configfiles/.config_we826t&lt;br /&gt;
&lt;br /&gt;
New ROOter image should be in the following directory&lt;br /&gt;
 images/&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Rooter&amp;diff=2706</id>
		<title>Rooter</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Rooter&amp;diff=2706"/>
		<updated>2022-02-25T15:32:10Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: /* Custom Firmware Build */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ROOter 4G LTE router firmware&lt;br /&gt;
== Custom Firmware Build ==&lt;br /&gt;
Ubuntu install&lt;br /&gt;
 sudo apt -y install build-essential libncurses5-dev python unzip gawk git curl jshon zip&lt;br /&gt;
These instructions are specific to WE826T (16M)&lt;br /&gt;
 cd /opt/&lt;br /&gt;
 git clone https://github.com/ofmodemsandmen/ROOterSource2102.git&lt;br /&gt;
 cd ROOterSource2102/&lt;br /&gt;
&lt;br /&gt;
Edit router-2102.json and add the following&lt;br /&gt;
        &amp;quot;WE826T&amp;quot;: {&lt;br /&gt;
                &amp;quot;details&amp;quot;: &amp;quot;ZBT WE826-T&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
                &amp;quot;build&amp;quot;: &amp;quot;2102&amp;quot;,&lt;br /&gt;
                &amp;quot;config&amp;quot;: &amp;quot;.config_we826t&amp;quot;,&lt;br /&gt;
                &amp;quot;image&amp;quot;: &amp;quot;openwrt-ramips-mt7620-zbtlink_zbt-we826-16m-squashfs-sysupgrade.bin&amp;quot;,&lt;br /&gt;
                &amp;quot;imagepath&amp;quot;: &amp;quot;/ramips/mt7620/&amp;quot;,&lt;br /&gt;
                &amp;quot;mod&amp;quot;: &amp;quot;ZBT-WE826T&amp;quot;,&lt;br /&gt;
                &amp;quot;ext&amp;quot;: &amp;quot;-upgrade.bin&amp;quot;,&lt;br /&gt;
                &amp;quot;addons&amp;quot;: [&amp;quot;readme.pdf&amp;quot;, &amp;quot;readmerecovery.txt&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
Run&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
 mv .config configfiles/.config_we826t&lt;br /&gt;
&lt;br /&gt;
New ROOter image should be in the following directory&lt;br /&gt;
 images/&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Rooter&amp;diff=2705</id>
		<title>Rooter</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Rooter&amp;diff=2705"/>
		<updated>2022-02-23T20:30:07Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: Created page with &amp;quot;ROOter 4G LTE router firmware == Custom Firmware Build == These instructions are specific to WE826T (16M)  cd /opt/  git clone https://github.com/ofmodemsandmen/ROOterSource21...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ROOter 4G LTE router firmware&lt;br /&gt;
== Custom Firmware Build ==&lt;br /&gt;
These instructions are specific to WE826T (16M)&lt;br /&gt;
 cd /opt/&lt;br /&gt;
 git clone https://github.com/ofmodemsandmen/ROOterSource2102.git&lt;br /&gt;
 cd ROOterSource2102/&lt;br /&gt;
&lt;br /&gt;
Edit router-2102.json and add the following&lt;br /&gt;
        &amp;quot;WE826T&amp;quot;: {&lt;br /&gt;
                &amp;quot;details&amp;quot;: &amp;quot;ZBT WE826-T&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
                &amp;quot;build&amp;quot;: &amp;quot;2102&amp;quot;,&lt;br /&gt;
                &amp;quot;config&amp;quot;: &amp;quot;.config_we826t&amp;quot;,&lt;br /&gt;
                &amp;quot;image&amp;quot;: &amp;quot;openwrt-ramips-mt7620-zbtlink_zbt-we826-16m-squashfs-sysupgrade.bin&amp;quot;,&lt;br /&gt;
                &amp;quot;imagepath&amp;quot;: &amp;quot;/ramips/mt7620/&amp;quot;,&lt;br /&gt;
                &amp;quot;mod&amp;quot;: &amp;quot;ZBT-WE826T&amp;quot;,&lt;br /&gt;
                &amp;quot;ext&amp;quot;: &amp;quot;-upgrade.bin&amp;quot;,&lt;br /&gt;
                &amp;quot;addons&amp;quot;: [&amp;quot;readme.pdf&amp;quot;, &amp;quot;readmerecovery.txt&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
Run&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
 mv .config configfiles/.config_we826t&lt;br /&gt;
&lt;br /&gt;
New ROOter image should be in the following directory&lt;br /&gt;
 images/&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
	<entry>
		<id>https://hurlster.com/wiki/index.php?title=Plex&amp;diff=2704</id>
		<title>Plex</title>
		<link rel="alternate" type="text/html" href="https://hurlster.com/wiki/index.php?title=Plex&amp;diff=2704"/>
		<updated>2022-02-22T15:45:25Z</updated>

		<summary type="html">&lt;p&gt;Gqwill69: /* Manually Edit Metadata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Manually Edit Metadata =&lt;br /&gt;
Inspired by: https://forums.plex.tv/t/change-the-addedat-date/171646/8&amp;lt;br&amp;gt;&lt;br /&gt;
From Web interface:&lt;br /&gt;
# Select show&lt;br /&gt;
# Get Info&lt;br /&gt;
# View XML&lt;br /&gt;
# Search for /library/metadata/&#039;&#039;&#039;xxxxx&#039;&#039;&#039;&lt;br /&gt;
# cp /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db /tmp/&lt;br /&gt;
&lt;br /&gt;
* Search by NAME&lt;br /&gt;
&amp;lt;pre&amp;gt;sqlite3 /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db&lt;br /&gt;
SELECT id,title,originally_available_at,added_at FROM metadata_items WHERE title LIKE &#039;Close%&#039;;&lt;br /&gt;
644|Close Rick-Counters of the Rick Kind|2014-04-07 00:00:00|2018-07-23 20:14:04&lt;br /&gt;
13962|Close Encounters of the Third Kind|1977-12-14 00:00:00|2021-06-24 09:32:04&lt;br /&gt;
13963|Close Encounters Of The Third Kind||2021-06-24 09:32:06&lt;br /&gt;
13964|Close Encounters Of The Third Kind (English Trailer 1)||2021-06-24 09:32:06&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Search by ID&lt;br /&gt;
&amp;lt;pre&amp;gt;sqlite3 /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db&lt;br /&gt;
SELECT id,title,originally_available_at,added_at FROM metadata_items WHERE id=&#039;xxxxx&#039;;&lt;br /&gt;
13963|Close Encounters Of The Third Kind||2021-06-24 09:32:06&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* One Liner&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/lib/plexmediaserver/Plex\ Media\ Server --sqlite /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db &amp;quot;UPDATE metadata_items SET added_at = datetime(originally_available_at, &#039;+365 days&#039;) WHERE id = &#039;xxxxx&#039;;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bash Script ===&lt;br /&gt;
Find $ID by clicking movie name, more, get info, View XML and look for &amp;lt;Video ratingKey=&amp;quot;XXXXX&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
The ratingKey number is the $ID to use for the script.&lt;br /&gt;
*/usr/local/sbin/plexdatechanger.sh&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 SQLITE=/usr/lib/plexmediaserver/Plex\ Media\ Server&lt;br /&gt;
 DB=./com.plexapp.plugins.library.db&lt;br /&gt;
 ID=$1&lt;br /&gt;
 sudo cp /var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-in\ Support/Databases/$DB /tmp/$DB&lt;br /&gt;
 cd /var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-in\ Support/Databases&lt;br /&gt;
 sudo &amp;quot;$SQLITE&amp;quot; --sqlite $DB &amp;quot;UPDATE metadata_items SET added_at = datetime(originally_available_at, &#039;+365 days&#039;) WHERE id = $ID;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 /usr/local/sbin/plexdatechanger.sh XXXXX&lt;br /&gt;
&lt;br /&gt;
= Plex DVR =&lt;br /&gt;
Update DVR from command line&amp;lt;br&amp;gt;&lt;br /&gt;
To find your Plex Update URL navigate to your plex server in chrome (eg, 192.168.1.1:32400/web/), &amp;lt;br&amp;gt;&lt;br /&gt;
and open chrome developer tools (press F12). Once developer tools is open, press (Ctrl/Cmd)+Shift+P, &amp;lt;br&amp;gt;&lt;br /&gt;
type &amp;quot;network&amp;quot; and press enter. Then, find and click the &amp;quot;Refresh Guide&amp;quot; link in Plex. Over in the &amp;lt;br&amp;gt;&lt;br /&gt;
developer tools window/pane, the first request listed should start with &amp;quot;reloadGuide?&amp;quot;. Right click &amp;lt;br&amp;gt;&lt;br /&gt;
the line and go to copy -&amp;gt; Copy link address. Paste the result below as plexUpdateURL. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
plexUpdateURL=&#039;http://192.168.0.254:32400/livetv/dvrs/xx/reloadGuide?X-Plex-Product=Plex%20Web&amp;amp;X-Plex-Version=4.69.1&amp;amp;X-Plex-Client-Identifier=123456789&amp;amp;X-Plex-Platform=Chrome&amp;amp;X-Plex-Platform-Version=97.0&amp;amp;X-Plex-Sync-Version=2&amp;amp;X-Plex-Features=external-media%2Cindirect-media&amp;amp;X-Plex-Model=bundled&amp;amp;X-Plex-Device=Windows&amp;amp;X-Plex-Device-Name=Chrome&amp;amp;X-Plex-Device-Screen-Resolution=1491x1324%2C2560x1440&amp;amp;X-Plex-Language=en&#039;&lt;br /&gt;
plexHostPort=&#039;192.168.0.254:32400&#039;&lt;br /&gt;
&lt;br /&gt;
curl --location --request POST &amp;quot;$plexUpdateURL&amp;quot; -H &amp;quot;authority: $plexHostPort&amp;quot; -H &amp;quot;content-length: 0&amp;quot; -H &amp;quot;pragma: no-cache&amp;quot; -H &amp;quot;cache-control: no-cache&amp;quot; -H &amp;quot;sec-ch-ua: &#039;Google Chrome&#039;;v=&#039;95&#039;, &#039;Chromium&#039;;v=&#039;95&#039;, &#039;;Not A Brand&#039;;v=&#039;99&#039;&amp;quot; -H &amp;quot;accept: text/plain, */*; q=0.01&amp;quot; -H &amp;quot;x-requested-with: XMLHttpRequest&amp;quot; -H &amp;quot;accept-language: en&amp;quot; -H &amp;quot;sec-ch-ua-mobile: ?0&amp;quot; -H &amp;quot;user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36&amp;quot; -H &amp;quot;sec-ch-ua-platform: &#039;macOS&#039;&amp;quot; -H &amp;quot;origin: http://$plexHostPort&amp;quot; -H &amp;quot;sec-fetch-site: same-origin&amp;quot; -H &amp;quot;sec-fetch-mode: cors&amp;quot; -H &amp;quot;sec-fetch-dest: empty&amp;quot; -H &amp;quot;referer: http://$plexHostPort/web/index.html&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= RasPlex =&lt;br /&gt;
Installation on RaspberryPi 2&lt;br /&gt;
Get and install Rasbian Lite&lt;br /&gt;
 https://downloads.raspberrypi.org/raspbian_lite_latest.torrent&lt;br /&gt;
*Burn with Win32DiskImager&lt;br /&gt;
Prepare wireless network (/etc/wpa_supplicant/wpa_supplicant.conf)&lt;br /&gt;
 network={&lt;br /&gt;
 ssid=&amp;quot;SSID&amp;quot;&lt;br /&gt;
 psk=&amp;quot;SSIDPASSWD&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Install updated tools&lt;br /&gt;
 $ sudo wget -q -O - https://www.bunkus.org/gpg-pub-moritzbunkus.txt | sudo apt-key add -&lt;br /&gt;
 $ sudo apt-get update &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
 $ sudo nano /etc/apt/sources.list.d/bunkus.list&lt;br /&gt;
add these lines......&lt;br /&gt;
 deb http://www.bunkus.org/debian/jessie/ ./&lt;br /&gt;
 deb-src http://www.bunkus.org/debian/jessie/ ./&lt;br /&gt;
&lt;br /&gt;
Then install plexmediaserver on raspberrypi 2&lt;br /&gt;
 &amp;lt;strike&amp;gt;$ sudo wget https://dev2day.de/plex-latest&lt;br /&gt;
 $ sudo dpkg -i plex-latest&amp;lt;/strike&amp;gt;&lt;br /&gt;
 $ sudo apt-get install mkvtoolnix libexpat1 libav-tools ntfs-3g samba samba-common exfat-utils -y&lt;br /&gt;
 $ sudo wget -q -O - http://dev2day.de/pms/dev2day-pms.gpg.key | sudo apt-key add -&lt;br /&gt;
 $ sudo su&lt;br /&gt;
 # echo &amp;quot;deb http://dev2day.de/pms/ jessie main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list.d/pms.list&lt;br /&gt;
 # apt-get update&lt;br /&gt;
 # apt-get install plexmediaserver&lt;br /&gt;
&lt;br /&gt;
* left out ffmpeg&lt;br /&gt;
Mount external(USB/HDD) disk:&lt;br /&gt;
* Reference: http://www.htpcguides.com/properly-mount-usb-storage-raspberry-pi/&lt;br /&gt;
 $ sudo nano /etc/fstab&lt;br /&gt;
 /dev/sda1 /media/usbhdd1 ntfs-3g gid=pi,uid=pi,noatime 0 0&lt;br /&gt;
 $ sudo mkdir -p /media/usbhdd1&lt;br /&gt;
 $ sudo reboot&lt;br /&gt;
* Option&lt;br /&gt;
 Follow these simple steps to install PMS on your armv7 device running Debian or a deriviate :&lt;br /&gt;
 # become root&lt;br /&gt;
 sudo su&lt;br /&gt;
 # add my public key&lt;br /&gt;
 wget -O - https://dev2day.de/pms/dev2day-pms.gpg.key | apt-key add -&lt;br /&gt;
 # add my PMS repo&lt;br /&gt;
 echo &amp;quot;deb https://dev2day.de/pms/ jessie main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list.d/pms.list&lt;br /&gt;
 # activate https&lt;br /&gt;
 apt-get install apt-transport-https&lt;br /&gt;
 # update the repos&lt;br /&gt;
 apt-get update&lt;br /&gt;
 # install PMS&lt;br /&gt;
 apt-get install plexmediaserver-installer&lt;br /&gt;
&lt;br /&gt;
 For ARM64 please use the following steps:&lt;br /&gt;
 # become root&lt;br /&gt;
 sudo su&lt;br /&gt;
 # add my public key&lt;br /&gt;
 wget -O - https://dev2day.de/pms/dev2day-pms.gpg.key | apt-key add -&lt;br /&gt;
 # add my PMS repo&lt;br /&gt;
 echo &amp;quot;deb [arch=armhf] https://dev2day.de/pms/ jessie main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list.d/pms.list&lt;br /&gt;
 # activate https&lt;br /&gt;
 apt-get install apt-transport-https&lt;br /&gt;
 #enable armhf support&lt;br /&gt;
 dpkg --add-architecture armhf &lt;br /&gt;
 # update the repos&lt;br /&gt;
 apt-get update&lt;br /&gt;
 # install PMS&lt;br /&gt;
 apt-get install plexmediaserver-installer:armhf&lt;br /&gt;
&lt;br /&gt;
= OpenPHT =&lt;br /&gt;
* Ubuntu 14.04 Trusty install&lt;br /&gt;
 apt-get build-dep kodi&lt;br /&gt;
&lt;br /&gt;
 https://github.com/RasPlex/OpenPHT/releases&lt;br /&gt;
 https://github.com/RasPlex/OpenPHT/releases/download/v1.6.2.123-e23a7eef/openpht_1.6.2.123-e23a7eef-trusty_amd64.deb&lt;br /&gt;
&lt;br /&gt;
* /etc/init.d/plexhometheater&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
### BEGIN INIT INFO&lt;br /&gt;
# Provides:          plexhometheater&lt;br /&gt;
# Required-Start:    $all&lt;br /&gt;
# Required-Stop:     $all&lt;br /&gt;
# Default-Start:     2 3 4 5&lt;br /&gt;
# Default-Stop:      0 1 6&lt;br /&gt;
# Short-Description: starts instance of Plex Home Theater&lt;br /&gt;
# Description:       starts instance of Plex Home Theater using start-stop-daemon and xinit&lt;br /&gt;
### END INIT INFO&lt;br /&gt;
&lt;br /&gt;
############### EDIT ME ##################&lt;br /&gt;
&lt;br /&gt;
# Read configuration variable file if it is present&lt;br /&gt;
[ -r /etc/default/plexhometheater ] &amp;amp;&amp;amp; . /etc/default/plexhometheater&lt;br /&gt;
&lt;br /&gt;
# path to xinit exec&lt;br /&gt;
DAEMON=/usr/bin/xinit&lt;br /&gt;
&lt;br /&gt;
# startup args&lt;br /&gt;
DAEMON_OPTS=&amp;quot;/usr/bin/openpht&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# script name&lt;br /&gt;
NAME=plexhometheater&lt;br /&gt;
&lt;br /&gt;
# app name&lt;br /&gt;
DESC=&amp;quot;Plex Home Theater&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# user&lt;br /&gt;
RUN_AS=root&lt;br /&gt;
&lt;br /&gt;
# Path of the PID file&lt;br /&gt;
PID_FILE=/var/run/plexhometheater.pid&lt;br /&gt;
&lt;br /&gt;
############### END EDIT ME ##################&lt;br /&gt;
&lt;br /&gt;
test -x $DAEMON || exit 0&lt;br /&gt;
&lt;br /&gt;
set -e&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
  start)&lt;br /&gt;
        echo &amp;quot;Starting $DESC&amp;quot;&lt;br /&gt;
        start-stop-daemon --start -c $RUN_AS --background --pidfile $PID_FILE  --make-pidfile --exec $DAEMON -- $DAEMON_OPTS&lt;br /&gt;
        ;;&lt;br /&gt;
  stop)&lt;br /&gt;
        echo &amp;quot;Stopping $DESC&amp;quot;&lt;br /&gt;
        start-stop-daemon --stop --pidfile $PID_FILE&lt;br /&gt;
        ;;&lt;br /&gt;
&lt;br /&gt;
  restart|force-reload)&lt;br /&gt;
        echo &amp;quot;Restarting $DESC&amp;quot;&lt;br /&gt;
        start-stop-daemon --stop --pidfile $PID_FILE&lt;br /&gt;
        sleep 5&lt;br /&gt;
        start-stop-daemon --start -c $RUN_AS --background --pidfile $PID_FILE  --make-pidfile --exec $DAEMON -- $DAEMON_OPTS&lt;br /&gt;
        ;;&lt;br /&gt;
  *)&lt;br /&gt;
        N=/etc/init.d/$NAME&lt;br /&gt;
        echo &amp;quot;Usage: $N {start|stop|restart|force-reload}&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
        exit 1&lt;br /&gt;
        ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= OpenPHT Debian =&lt;br /&gt;
Installation for Jessie/Sid&lt;br /&gt;
* Enable all extras.ubuntu.com packages in sources.list&lt;br /&gt;
 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 16126D3A3E5C1192&lt;br /&gt;
* Add repos&lt;br /&gt;
 apt-get install software-properties-common&lt;br /&gt;
 add-apt-repository ppa:team-xbmc/ppa&lt;br /&gt;
 apt-get update&lt;br /&gt;
*Install key&lt;br /&gt;
 gpg --keyserver pgp.mit.edu --recv-keys 0x860CDC13 &amp;amp;&amp;amp; gpg --armor --export 0x860CDC13 | apt-key add -&lt;br /&gt;
* Add /etc/sources.list.d/openpht.list&lt;br /&gt;
 deb http://www.preining.info/debian/ openpht-sid main&lt;br /&gt;
 deb-src http://www.preining.info/debian/ openpht-sid main&lt;br /&gt;
* Install libssl&lt;br /&gt;
 wget http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl1.0.2_1.0.2h-1_i386.deb&lt;br /&gt;
 dpkg -i libssl1.0.2_1.0.2h-1_i386.deb&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install libjpeg62-dev openpht&lt;br /&gt;
&lt;br /&gt;
= OpenPHT Minimal (ION) =&lt;br /&gt;
The following guide/information assume you have decent linux knowledge adn can create a bootable usb pen&amp;lt;br&amp;gt;&lt;br /&gt;
Get the ubuntu minial iso from ubuntu, extract it to a usb pen. Use &#039;&#039;&#039;plex&#039;&#039;&#039; as your username in the setup&amp;lt;br&amp;gt;&lt;br /&gt;
When the initial setup completes and you&#039;ve logged in, run the following commands&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install software-properties-common pkg-config&lt;br /&gt;
 sudo apt-add-repository ppa:plexapp/plexht&lt;br /&gt;
 sudo apt-add-repository ppa:pulse-eight/libcec&lt;br /&gt;
&lt;br /&gt;
* Install plexmediaserver (if dual setup system)&lt;br /&gt;
 wget https://downloads.plex.tv/plex-media-server/1.0.3.2461-35f0caa/plexmediaserver_1.0.3.2461-35f0caa_i386.deb&lt;br /&gt;
 dpkg -i plexmediaserver_1.0.3.2461-35f0caa_i386.deb&lt;br /&gt;
&lt;br /&gt;
* Add /etc/sources.list.d/openpht.list&lt;br /&gt;
 deb http://www.preining.info/debian/ openpht-sid main&lt;br /&gt;
 deb-src http://www.preining.info/debian/ openpht-sid main&lt;br /&gt;
* Install preining.info key&lt;br /&gt;
 gpg --keyserver pgp.mit.edu --recv-keys 0x860CDC13 &amp;amp;&amp;amp; gpg --armor --export 0x860CDC13 | apt-key add -&lt;br /&gt;
* Update&lt;br /&gt;
 apt-get update&lt;br /&gt;
* Get libshair requirement&lt;br /&gt;
 wget https://www.preining.info/debian/pool/main/s/shairplay/libshairplay0_0.9.0.20160527-1_i386.deb&lt;br /&gt;
 dpkg -i libshairplay0_0.9.0.20160527-1_i386.deb&lt;br /&gt;
* Install SSL&lt;br /&gt;
 wget http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl1.0.2_1.0.2h-1_i386.deb&lt;br /&gt;
 dpkg -i libssl1.0.2_1.0.2h-1_i386.deb&lt;br /&gt;
&lt;br /&gt;
* Install deps&lt;br /&gt;
 sudo apt-get install openpht xorg alsa-utils lirc libsdl1.2-dev libjpeg-dev liblzo2-dev libyajl-dev \&lt;br /&gt;
 libmicrohttpd-dev libtinyxml-dev libglew-dev libavahi-client-dev libflac++-dev libsdl-image1.2-dev \&lt;br /&gt;
 libboost-thread1.58-dev libva-dev libtiff5-dev libjpeg-turbo8-dev libjpeg62-dev -y&lt;br /&gt;
&lt;br /&gt;
* NVidia only install &lt;br /&gt;
 wget http://us.download.nvidia.com/XFree86/Linux-x86/340.96/NVIDIA-Linux-x86-340.96.run&lt;br /&gt;
 chmod 755 NVIDIA-Linux-x86-340.96.run&lt;br /&gt;
 sudo ./NVIDIA-Linux-x86-340.96.run -a -q --opengl-headers -X --dkms&lt;br /&gt;
 &lt;br /&gt;
 sudo nvidia-xconfig -s --no-logo --force-generate --output-xconfig=/etc/X11/xorg.conf&lt;br /&gt;
&lt;br /&gt;
Set X to be accessed by &#039;&#039;&#039;everyone&#039;&#039;&#039;?&lt;br /&gt;
 sudo dpkg-reconfigure x11-common&lt;br /&gt;
&lt;br /&gt;
Setup OpenPHT to boot at startup by editing &#039;&#039;&#039;openpht&#039;&#039;&#039;&lt;br /&gt;
 sudo nano /etc/init.d/openpht&lt;br /&gt;
&lt;br /&gt;
Paste this:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 ### BEGIN INIT INFO&lt;br /&gt;
 # Provides:          openpht&lt;br /&gt;
 # Required-Start:    $all&lt;br /&gt;
 # Required-Stop:     $all&lt;br /&gt;
 # Default-Start:     2 3 4 5&lt;br /&gt;
 # Default-Stop:      0 1 6&lt;br /&gt;
 # Short-Description: starts instance of Plex Home Theater&lt;br /&gt;
 # Description:       starts instance of Plex Home Theater using start-stop-daemon and xinit&lt;br /&gt;
 ### END INIT INFO&lt;br /&gt;
 &lt;br /&gt;
 ############### EDIT ME ##################&lt;br /&gt;
 &lt;br /&gt;
 # Read configuration variable file if it is present&lt;br /&gt;
 [ -r /etc/default/plexhometheater ] &amp;amp;&amp;amp; . /etc/default/plexhometheater&lt;br /&gt;
 &lt;br /&gt;
 # path to xinit exec&lt;br /&gt;
 DAEMON=/usr/bin/xinit&lt;br /&gt;
 &lt;br /&gt;
 # startup args&lt;br /&gt;
 DAEMON_OPTS=&amp;quot;/usr/bin/openpht&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # script name&lt;br /&gt;
 NAME=openpht&lt;br /&gt;
 &lt;br /&gt;
 # app name&lt;br /&gt;
 DESC=&amp;quot;Plex Home Theater&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # user&lt;br /&gt;
 RUN_AS=root&lt;br /&gt;
 &lt;br /&gt;
 # Path of the PID file&lt;br /&gt;
 PID_FILE=/var/run/openpht.pid&lt;br /&gt;
 &lt;br /&gt;
 ############### END EDIT ME ##################&lt;br /&gt;
 &lt;br /&gt;
 test -x $DAEMON || exit 0&lt;br /&gt;
 &lt;br /&gt;
 set -e&lt;br /&gt;
 &lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
  start)&lt;br /&gt;
        echo &amp;quot;Starting $DESC&amp;quot;&lt;br /&gt;
        start-stop-daemon --start -c $RUN_AS --background --pidfile $PID_FILE  --make-pidfile --exec $DAEMON -- $DAEMON_OPTS&lt;br /&gt;
        ;;&lt;br /&gt;
  stop)&lt;br /&gt;
        echo &amp;quot;Stopping $DESC&amp;quot;&lt;br /&gt;
        start-stop-daemon --stop --pidfile $PID_FILE&lt;br /&gt;
        ;;&lt;br /&gt;
 &lt;br /&gt;
  restart|force-reload)&lt;br /&gt;
        echo &amp;quot;Restarting $DESC&amp;quot;&lt;br /&gt;
        start-stop-daemon --stop --pidfile $PID_FILE&lt;br /&gt;
        sleep 5&lt;br /&gt;
        start-stop-daemon --start -c $RUN_AS --background --pidfile $PID_FILE  --make-pidfile --exec $DAEMON -- $DAEMON_OPTS&lt;br /&gt;
        ;;&lt;br /&gt;
  *)&lt;br /&gt;
        N=/etc/init.d/$NAME&lt;br /&gt;
        echo &amp;quot;Usage: $N {start|stop|restart|force-reload}&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
        exit 1&lt;br /&gt;
        ;;&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
* Make executable&lt;br /&gt;
 update-rc.d openpht defaults&lt;br /&gt;
&lt;br /&gt;
And finally run&lt;br /&gt;
 sudo reboot&lt;br /&gt;
 &lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gqwill69</name></author>
	</entry>
</feed>