Deprecated: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/libraries/src/Document/Renderer/Feed/AtomRenderer.php on line 89 How To https://www.isaacray.com/index.php/how-to 2024-05-09T20:29:46+00:00 IsaacRay Joomla! - Open Source Content Management Encoding HEVC x265/h265 for the Xbox with FFMPEG 2020-04-07T12:03:55+00:00 2020-04-07T12:03:55+00:00 https://www.isaacray.com/index.php/how-to/encoding-hevc-for-the-xbox Super User <h1>Overview</h1> <p>Using Plex to stream to the XBox and various other devices around the home and abroad is a breeze.  While the latest Rokus and Plex clients can handle most video and audio formats, I've noticed the XBox struggles to be as universally accepting.</p> <h1>Tools</h1> <ul> <li>MakeMKV: Rip the BluRAY and DVDs</li> <li>FFMPEG: Encodes video files</li> </ul> <p>FFMPEG is my tool of choice because I can save the options in text files all over the place and forget where I save them then have to try and remember all the command line options to reproduce them. A lot of people use Handbrake, which I believe is a great UI tool on top of FFMPEG, but I find UIs more cumbersome than command lines.</p> <h1>Let's Get To It</h1> <p>The standard FFMPEG libx265 with no options will produce some pretty good video that, in most cases, will stream directly to the XBox.  What you really want, however, is to direct play your audio and video files so that your Plex server does not have to transcode them.</p> <p>Requirements for 265 and there CLOs:</p> <ul> <li>10-bit Pixel format: -pix_fmt yuv420p10le</li> <li>MKV container (you can use others, but why?): just end the output file ".mkv"</li> <li>The codecs <ul> <li>GPU rendering is much faster but with way less options: -c:v hevc_nvenc</li> <li>CPU rendering has all the bells and whistles, but is slower and will turn your computer into a space heater: -c:v libx265</li> </ul> </li> <li>You don't really need to set the desired bitrate, but if you are not happy with the quality, increase it, or try dual pass.  If you are not happy with the file size, decrease it: -b:v 2000k</li> </ul> <p>That's it.  Other options should work, but be skeptical about playing with BFrames and Group of Pictures.  These options can be taxing on some media playback devices.</p> <p>Now, for the audio.  There is a lot of sparsely documented support for a lot of audio formats, but I prefer AAC.  It allows me to adjust the bitrate to an acceptable file size and quality while keeping all the original channels from my video source.  Also, FFMPEG can apply filters to AAC streams if I want to change the source audio to be less obnoxious with explosions and more front loaded with dialogue.</p> <ul> <li>Get the codec: -c:a aac</li> <li>Do not let this warning kill a whole weekend for you "Using a PCE to encode channel layout 5.1(side)".  The XBox can not play 5.1(side): -channel_layout 5.1</li> <li>Set the desired bitrate: -b:a 196k</li> </ul> <p>See all the available (undocumented) channel layouts (LFE is the subwoofer): ffmpeg -layouts</p> <p>Standard channel layouts:</p> <ul> <li>NAME           DECOMPOSITION</li> <li>mono           FC</li> <li>stereo         FL+FR</li> <li>2.1            FL+FR+LFE</li> <li>3.0            FL+FR+FC</li> <li>3.0(back)      FL+FR+BC</li> <li>4.0            FL+FR+FC+BC</li> <li>quad           FL+FR+BL+BR</li> <li>quad(side)     FL+FR+SL+SR</li> <li>3.1            FL+FR+FC+LFE</li> <li>5.0            FL+FR+FC+BL+BR</li> <li>5.0(side)      FL+FR+FC+SL+SR</li> <li>4.1            FL+FR+FC+LFE+BC</li> <li>5.1            FL+FR+FC+LFE+BL+BR</li> <li>5.1(side)      FL+FR+FC+LFE+SL+SR</li> <li>6.0            FL+FR+FC+BC+SL+SR</li> <li>6.0(front)     FL+FR+FLC+FRC+SL+SR</li> <li>hexagonal      FL+FR+FC+BL+BR+BC</li> <li>6.1            FL+FR+FC+LFE+BC+SL+SR</li> <li>6.1(back)      FL+FR+FC+LFE+BL+BR+BC</li> <li>6.1(front)     FL+FR+LFE+FLC+FRC+SL+SR</li> <li>7.0            FL+FR+FC+BL+BR+SL+SR</li> <li>7.0(front)     FL+FR+FC+FLC+FRC+SL+SR</li> <li>7.1            FL+FR+FC+LFE+BL+BR+SL+SR</li> <li>7.1(wide)      FL+FR+FC+LFE+BL+BR+FLC+FRC</li> <li>7.1(wide-side) FL+FR+FC+LFE+FLC+FRC+SL+SR</li> <li>octagonal      FL+FR+FC+BL+BR+BC+SL+SR</li> <li>hexadecagonal  FL+FR+FC+BL+BR+BC+SL+SR+TFL+TFC+TFR+TBL+TBC+TBR+WL+WR</li> <li>downmix        DL+DR</li> </ul> <p>Putting it all together</p> <table> <tbody> <tr> <td>Basic</td> <td>ffmpeg -i movie\title_t00.mkv -c:s copy -c:a aac -c:v hevc_nvenc -b:v 2000k -b:a 196k -channel_layout 5.1 output.mkv</td> </tr> <tr> <td>Strip noisy metadata</td> <td>ffmpeg -i movie\title_t00.mkv -c:s copy -c:a aac -c:v hevc_nvenc -b:v 2000k -b:a 196k -channel_layout 5.1 -map_metadata -1 output.mkv</td> </tr> <tr> <td>Force compatible pixel format (this is mostly for 4k and bluray quality videos)</td> <td>ffmpeg -i movie\title_t00.mkv -c:s copy -c:a aac -c:v hevc_nvenc -b:v 2000k -b:a 196k -channel_layout 5.1 -map_metadata -1 -pix_fmt yuv420p10le output.mkv</td> </tr> </tbody> </table> <h1>Why 265?</h1> <p>Yes, the XBox 1S supports HEVC/x265.  This codec is great because of the file size and video quality.  You can look it up everywhere, the problem is that it's not fully supported everywhere.</p> <h1>Overview</h1> <p>Using Plex to stream to the XBox and various other devices around the home and abroad is a breeze.  While the latest Rokus and Plex clients can handle most video and audio formats, I've noticed the XBox struggles to be as universally accepting.</p> <h1>Tools</h1> <ul> <li>MakeMKV: Rip the BluRAY and DVDs</li> <li>FFMPEG: Encodes video files</li> </ul> <p>FFMPEG is my tool of choice because I can save the options in text files all over the place and forget where I save them then have to try and remember all the command line options to reproduce them. A lot of people use Handbrake, which I believe is a great UI tool on top of FFMPEG, but I find UIs more cumbersome than command lines.</p> <h1>Let's Get To It</h1> <p>The standard FFMPEG libx265 with no options will produce some pretty good video that, in most cases, will stream directly to the XBox.  What you really want, however, is to direct play your audio and video files so that your Plex server does not have to transcode them.</p> <p>Requirements for 265 and there CLOs:</p> <ul> <li>10-bit Pixel format: -pix_fmt yuv420p10le</li> <li>MKV container (you can use others, but why?): just end the output file ".mkv"</li> <li>The codecs <ul> <li>GPU rendering is much faster but with way less options: -c:v hevc_nvenc</li> <li>CPU rendering has all the bells and whistles, but is slower and will turn your computer into a space heater: -c:v libx265</li> </ul> </li> <li>You don't really need to set the desired bitrate, but if you are not happy with the quality, increase it, or try dual pass.  If you are not happy with the file size, decrease it: -b:v 2000k</li> </ul> <p>That's it.  Other options should work, but be skeptical about playing with BFrames and Group of Pictures.  These options can be taxing on some media playback devices.</p> <p>Now, for the audio.  There is a lot of sparsely documented support for a lot of audio formats, but I prefer AAC.  It allows me to adjust the bitrate to an acceptable file size and quality while keeping all the original channels from my video source.  Also, FFMPEG can apply filters to AAC streams if I want to change the source audio to be less obnoxious with explosions and more front loaded with dialogue.</p> <ul> <li>Get the codec: -c:a aac</li> <li>Do not let this warning kill a whole weekend for you "Using a PCE to encode channel layout 5.1(side)".  The XBox can not play 5.1(side): -channel_layout 5.1</li> <li>Set the desired bitrate: -b:a 196k</li> </ul> <p>See all the available (undocumented) channel layouts (LFE is the subwoofer): ffmpeg -layouts</p> <p>Standard channel layouts:</p> <ul> <li>NAME           DECOMPOSITION</li> <li>mono           FC</li> <li>stereo         FL+FR</li> <li>2.1            FL+FR+LFE</li> <li>3.0            FL+FR+FC</li> <li>3.0(back)      FL+FR+BC</li> <li>4.0            FL+FR+FC+BC</li> <li>quad           FL+FR+BL+BR</li> <li>quad(side)     FL+FR+SL+SR</li> <li>3.1            FL+FR+FC+LFE</li> <li>5.0            FL+FR+FC+BL+BR</li> <li>5.0(side)      FL+FR+FC+SL+SR</li> <li>4.1            FL+FR+FC+LFE+BC</li> <li>5.1            FL+FR+FC+LFE+BL+BR</li> <li>5.1(side)      FL+FR+FC+LFE+SL+SR</li> <li>6.0            FL+FR+FC+BC+SL+SR</li> <li>6.0(front)     FL+FR+FLC+FRC+SL+SR</li> <li>hexagonal      FL+FR+FC+BL+BR+BC</li> <li>6.1            FL+FR+FC+LFE+BC+SL+SR</li> <li>6.1(back)      FL+FR+FC+LFE+BL+BR+BC</li> <li>6.1(front)     FL+FR+LFE+FLC+FRC+SL+SR</li> <li>7.0            FL+FR+FC+BL+BR+SL+SR</li> <li>7.0(front)     FL+FR+FC+FLC+FRC+SL+SR</li> <li>7.1            FL+FR+FC+LFE+BL+BR+SL+SR</li> <li>7.1(wide)      FL+FR+FC+LFE+BL+BR+FLC+FRC</li> <li>7.1(wide-side) FL+FR+FC+LFE+FLC+FRC+SL+SR</li> <li>octagonal      FL+FR+FC+BL+BR+BC+SL+SR</li> <li>hexadecagonal  FL+FR+FC+BL+BR+BC+SL+SR+TFL+TFC+TFR+TBL+TBC+TBR+WL+WR</li> <li>downmix        DL+DR</li> </ul> <p>Putting it all together</p> <table> <tbody> <tr> <td>Basic</td> <td>ffmpeg -i movie\title_t00.mkv -c:s copy -c:a aac -c:v hevc_nvenc -b:v 2000k -b:a 196k -channel_layout 5.1 output.mkv</td> </tr> <tr> <td>Strip noisy metadata</td> <td>ffmpeg -i movie\title_t00.mkv -c:s copy -c:a aac -c:v hevc_nvenc -b:v 2000k -b:a 196k -channel_layout 5.1 -map_metadata -1 output.mkv</td> </tr> <tr> <td>Force compatible pixel format (this is mostly for 4k and bluray quality videos)</td> <td>ffmpeg -i movie\title_t00.mkv -c:s copy -c:a aac -c:v hevc_nvenc -b:v 2000k -b:a 196k -channel_layout 5.1 -map_metadata -1 -pix_fmt yuv420p10le output.mkv</td> </tr> </tbody> </table> <h1>Why 265?</h1> <p>Yes, the XBox 1S supports HEVC/x265.  This codec is great because of the file size and video quality.  You can look it up everywhere, the problem is that it's not fully supported everywhere.</p> How To Install a Linux base system from Xubuntu or Ubuntu live CD 2016-09-02T03:58:27+00:00 2016-09-02T03:58:27+00:00 https://www.isaacray.com/index.php/how-to/how-to-install-a-linux-base-system-from-xubuntu-or-ubuntu-live-cd Super User <p style="font-size: 12.16px; line-height: 15.808px;">sudo su<br />fdisk /dev/sda<br />#create 1 primary partition sda1, <br />#a smaller extended partition sda4 <br />#with a logical partition sda5<br />mkswap /dev/sda5<br />sync; sync; sync<br />swapon /dev/sda5<br />mkfs.ext4 /dev/sda1<br />mkdir /mnt/ubuntu<br />mount /dev/sda1 /mnt/ubuntu<br />mkdir /work<br />cd /work<br /><span style="line-height: 1.3em;">apt-get update<br /></span><span style="line-height: 1.3em;">apt-get install debootstrap<br /></span><span style="line-height: 1.3em;">debootstrap vivid /mnt/ubuntu<br /></span><span style="line-height: 1.3em;">nano /new/etc/apt/sources.list<br /></span> #<span style="line-height: 1.3em;">add restricted universe multiverse</span></p> <p style="font-size: 12.16px; line-height: 15.808px;">sudo mount --bind /dev /mnt/ubuntu/dev<br /><span style="line-height: 1.3em;">sudo mount --bind /dev/pts /</span><span style="line-height: 15.808px;">mnt/ubuntu</span><span style="line-height: 1.3em;">/dev/pts<br /></span><span style="line-height: 1.3em;">sudo mount -t proc proc /</span><span style="line-height: 15.808px;">mnt/ubuntu</span><span style="line-height: 1.3em;">/proc<br /></span><span style="line-height: 1.3em;">sudo mount -t sysfs sys /</span><span style="line-height: 15.808px;">mnt/ubuntu</span><span style="line-height: 1.3em;">/sys</span></p> <p style="font-size: 12.16px; line-height: 15.808px;"><span style="line-height: 1.3em;">sudo chroot /</span><span style="line-height: 15.808px;">mnt/ubuntu</span></p> <p style="font-size: 12.16px; line-height: 15.808px;"><span style="line-height: 1.3em;">#Create device files</span></p> <p style="font-size: 12.16px; line-height: 15.808px;">cd /dev<br />MAKEDEV generic<br />#create fstab<br />editor /etc/fstab<br />&gt;&gt; # file system    mount point   type    options                  dump pass<br />&gt;&gt; /dev/sda1        /             ext4    errors=remount-ro                 0    1<br />&gt;&gt; /dev/sda5        none          swap    sw                       0    0<br />&gt;&gt; proc             /proc         proc    defaults                 0    0<br />&gt;&gt; sys              /sys          sysfs   defaults                 0    0<br />&gt;&gt; /dev/fd0         /media/floppy auto    noauto,rw,sync,user,exec 0    0<br />&gt;&gt; /dev/cdrom       /media/cdrom  iso9660 noauto,ro,user,exec      0    0<br />mkdir /media/cdrom<br />mkdir /media/floppy<br />mount -a<br />#set timezone<br /><span style="line-height: 1.3em;">locale-gen en_US.UTF-8<br /></span><span style="line-height: 1.3em;">dpkg-reconfigure tzdata</span></p> <p style="font-size: 12.16px; line-height: 15.808px;">#configure networking<br />editor /etc/network/interfaces<br />&gt;&gt; # To use dhcp:<br />&gt;&gt; #<br />&gt;&gt; # auto eth0<br />&gt;&gt; # iface eth0 inet dhcp<br />&gt;&gt; <br />&gt;&gt; # An example static IP setup: (broadcast and gateway are optional)<br />&gt;&gt; #<br />&gt;&gt; # auto eth0<br />&gt;&gt; # iface eth0 inet static<br />&gt;&gt; #     address 192.168.0.42<br />&gt;&gt; #     network 192.168.0.0<br />&gt;&gt; #     netmask 255.255.255.0<br />&gt;&gt; #     broadcast 192.168.0.255<br />&gt;&gt; #     gateway 192.168.0.1<br />#OPTIONAL name server<br />editor /etc/resolv.conf<br />#Set your computer's host name<br />echo UbuntuHostName &gt; /etc/hostname<br />#OPTIONAL configure Apt w/ more sources<br />deb-src http://archive.ubuntu.com/ubuntu vivid main<br />deb http://security.ubuntu.com/ubuntu vivid-security main<br />deb-src http://security.ubuntu.com/ubuntu vivid-security main<br /><br />#If you want to boot, install a kernel<br />apt-cache search linux-image<br />apt-get install linux-image-2.6.35-22-generic openssh-server bash-completion<br /> <span style="line-height: 1.3em;">#comes with grub, install it on /dev/sda</span></p> <p style="font-size: 12.16px; line-height: 15.808px;">#OPTIONAL??? setup the boot loader (will probably be done after installing kernel)<br /> apt-get install grub<br /> grub-install /dev/sda<br /> update-grub<br />#Create a user<br />adduser myusername<br />gpasswd -a username sudo</p> <p style="font-size: 12.16px; line-height: 15.808px;">#setup bash completion<br /><span style="line-height: 1.3em;">nano /etc/bash.bashrc<br /></span> <span style="line-height: 1.3em;">#look for "enable bash completion and uncomment the code<br /></span><span style="line-height: 1.3em;">#exit the chroot</span></p> <p style="font-size: 12.16px; line-height: 15.808px;"><span style="line-height: 1.3em;">unmount /new<br /></span> <span style="line-height: 1.3em;">#may need to umount the sub directories first {/sys /proc /dev/pts /dev}<br /></span><span style="line-height: 1.3em;">reboot</span></p> <p style="font-size: 12.16px; line-height: 15.808px;">sudo su<br />fdisk /dev/sda<br />#create 1 primary partition sda1, <br />#a smaller extended partition sda4 <br />#with a logical partition sda5<br />mkswap /dev/sda5<br />sync; sync; sync<br />swapon /dev/sda5<br />mkfs.ext4 /dev/sda1<br />mkdir /mnt/ubuntu<br />mount /dev/sda1 /mnt/ubuntu<br />mkdir /work<br />cd /work<br /><span style="line-height: 1.3em;">apt-get update<br /></span><span style="line-height: 1.3em;">apt-get install debootstrap<br /></span><span style="line-height: 1.3em;">debootstrap vivid /mnt/ubuntu<br /></span><span style="line-height: 1.3em;">nano /new/etc/apt/sources.list<br /></span> #<span style="line-height: 1.3em;">add restricted universe multiverse</span></p> <p style="font-size: 12.16px; line-height: 15.808px;">sudo mount --bind /dev /mnt/ubuntu/dev<br /><span style="line-height: 1.3em;">sudo mount --bind /dev/pts /</span><span style="line-height: 15.808px;">mnt/ubuntu</span><span style="line-height: 1.3em;">/dev/pts<br /></span><span style="line-height: 1.3em;">sudo mount -t proc proc /</span><span style="line-height: 15.808px;">mnt/ubuntu</span><span style="line-height: 1.3em;">/proc<br /></span><span style="line-height: 1.3em;">sudo mount -t sysfs sys /</span><span style="line-height: 15.808px;">mnt/ubuntu</span><span style="line-height: 1.3em;">/sys</span></p> <p style="font-size: 12.16px; line-height: 15.808px;"><span style="line-height: 1.3em;">sudo chroot /</span><span style="line-height: 15.808px;">mnt/ubuntu</span></p> <p style="font-size: 12.16px; line-height: 15.808px;"><span style="line-height: 1.3em;">#Create device files</span></p> <p style="font-size: 12.16px; line-height: 15.808px;">cd /dev<br />MAKEDEV generic<br />#create fstab<br />editor /etc/fstab<br />&gt;&gt; # file system    mount point   type    options                  dump pass<br />&gt;&gt; /dev/sda1        /             ext4    errors=remount-ro                 0    1<br />&gt;&gt; /dev/sda5        none          swap    sw                       0    0<br />&gt;&gt; proc             /proc         proc    defaults                 0    0<br />&gt;&gt; sys              /sys          sysfs   defaults                 0    0<br />&gt;&gt; /dev/fd0         /media/floppy auto    noauto,rw,sync,user,exec 0    0<br />&gt;&gt; /dev/cdrom       /media/cdrom  iso9660 noauto,ro,user,exec      0    0<br />mkdir /media/cdrom<br />mkdir /media/floppy<br />mount -a<br />#set timezone<br /><span style="line-height: 1.3em;">locale-gen en_US.UTF-8<br /></span><span style="line-height: 1.3em;">dpkg-reconfigure tzdata</span></p> <p style="font-size: 12.16px; line-height: 15.808px;">#configure networking<br />editor /etc/network/interfaces<br />&gt;&gt; # To use dhcp:<br />&gt;&gt; #<br />&gt;&gt; # auto eth0<br />&gt;&gt; # iface eth0 inet dhcp<br />&gt;&gt; <br />&gt;&gt; # An example static IP setup: (broadcast and gateway are optional)<br />&gt;&gt; #<br />&gt;&gt; # auto eth0<br />&gt;&gt; # iface eth0 inet static<br />&gt;&gt; #     address 192.168.0.42<br />&gt;&gt; #     network 192.168.0.0<br />&gt;&gt; #     netmask 255.255.255.0<br />&gt;&gt; #     broadcast 192.168.0.255<br />&gt;&gt; #     gateway 192.168.0.1<br />#OPTIONAL name server<br />editor /etc/resolv.conf<br />#Set your computer's host name<br />echo UbuntuHostName &gt; /etc/hostname<br />#OPTIONAL configure Apt w/ more sources<br />deb-src http://archive.ubuntu.com/ubuntu vivid main<br />deb http://security.ubuntu.com/ubuntu vivid-security main<br />deb-src http://security.ubuntu.com/ubuntu vivid-security main<br /><br />#If you want to boot, install a kernel<br />apt-cache search linux-image<br />apt-get install linux-image-2.6.35-22-generic openssh-server bash-completion<br /> <span style="line-height: 1.3em;">#comes with grub, install it on /dev/sda</span></p> <p style="font-size: 12.16px; line-height: 15.808px;">#OPTIONAL??? setup the boot loader (will probably be done after installing kernel)<br /> apt-get install grub<br /> grub-install /dev/sda<br /> update-grub<br />#Create a user<br />adduser myusername<br />gpasswd -a username sudo</p> <p style="font-size: 12.16px; line-height: 15.808px;">#setup bash completion<br /><span style="line-height: 1.3em;">nano /etc/bash.bashrc<br /></span> <span style="line-height: 1.3em;">#look for "enable bash completion and uncomment the code<br /></span><span style="line-height: 1.3em;">#exit the chroot</span></p> <p style="font-size: 12.16px; line-height: 15.808px;"><span style="line-height: 1.3em;">unmount /new<br /></span> <span style="line-height: 1.3em;">#may need to umount the sub directories first {/sys /proc /dev/pts /dev}<br /></span><span style="line-height: 1.3em;">reboot</span></p> How To Build heimdall in Linux 2016-09-02T03:57:32+00:00 2016-09-02T03:57:32+00:00 https://www.isaacray.com/index.php/how-to/how-to-build-heimdall-in-linux Super User <p style="font-size: 12.16px; line-height: 15.808px;">I am mostly putting this here because I usually run Linux from a live source and have a specific task.  The dependencies are not ever available and it takes me a while to sort through them so here goes:</p> <p style="font-size: 12.16px; line-height: 15.808px;">Read up on it here: <a href="https://github.com/Benjamin-Dobell/Heimdall" target="_blank" rel="noopener noreferrer">https://github.com/Benjamin-Dobell/Heimdall</a></p> <p style="font-size: 12.16px; line-height: 15.808px;">sudo apt-get update</p> <p style="font-size: 12.16px; line-height: 15.808px;">sudo apt-get install libusb-1.0 build-essential pkg-config zlib1g-dev libusb-dev libqt4-dev qt4-qmake autoconf libtool</p> <p style="font-size: 12.16px; line-height: 15.808px;">wget <a href="https://nodeload.github.com/Benjamin-Dobell/Heimdall/zip/master" target="_blank" rel="noopener noreferrer">https://nodeload.github.com/Benjamin-Dobell/Heimdall/zip/master</a></p> <p style="font-size: 12.16px; line-height: 15.808px;">cd libpit</p> <p style="font-size: 12.16px; line-height: 15.808px;">./configure</p> <p style="font-size: 12.16px; line-height: 15.808px;">make</p> <p style="font-size: 12.16px; line-height: 15.808px;">cd ..<br /><br />cd libusb-1.0</p> <p style="font-size: 12.16px; line-height: 15.808px;">./configure</p> <p style="font-size: 12.16px; line-height: 15.808px;">make</p> <p style="font-size: 12.16px; line-height: 15.808px;">cd ..<br /><br />cd heimdall</p> <p style="font-size: 12.16px; line-height: 15.808px;">./configure</p> <p style="font-size: 12.16px; line-height: 15.808px;">make</p> <p style="font-size: 12.16px; line-height: 15.808px;">sudo make install</p> <p style="font-size: 12.16px; line-height: 15.808px;">cd ..</p> <p style="font-size: 12.16px; line-height: 15.808px;">I am mostly putting this here because I usually run Linux from a live source and have a specific task.  The dependencies are not ever available and it takes me a while to sort through them so here goes:</p> <p style="font-size: 12.16px; line-height: 15.808px;">Read up on it here: <a href="https://github.com/Benjamin-Dobell/Heimdall" target="_blank" rel="noopener noreferrer">https://github.com/Benjamin-Dobell/Heimdall</a></p> <p style="font-size: 12.16px; line-height: 15.808px;">sudo apt-get update</p> <p style="font-size: 12.16px; line-height: 15.808px;">sudo apt-get install libusb-1.0 build-essential pkg-config zlib1g-dev libusb-dev libqt4-dev qt4-qmake autoconf libtool</p> <p style="font-size: 12.16px; line-height: 15.808px;">wget <a href="https://nodeload.github.com/Benjamin-Dobell/Heimdall/zip/master" target="_blank" rel="noopener noreferrer">https://nodeload.github.com/Benjamin-Dobell/Heimdall/zip/master</a></p> <p style="font-size: 12.16px; line-height: 15.808px;">cd libpit</p> <p style="font-size: 12.16px; line-height: 15.808px;">./configure</p> <p style="font-size: 12.16px; line-height: 15.808px;">make</p> <p style="font-size: 12.16px; line-height: 15.808px;">cd ..<br /><br />cd libusb-1.0</p> <p style="font-size: 12.16px; line-height: 15.808px;">./configure</p> <p style="font-size: 12.16px; line-height: 15.808px;">make</p> <p style="font-size: 12.16px; line-height: 15.808px;">cd ..<br /><br />cd heimdall</p> <p style="font-size: 12.16px; line-height: 15.808px;">./configure</p> <p style="font-size: 12.16px; line-height: 15.808px;">make</p> <p style="font-size: 12.16px; line-height: 15.808px;">sudo make install</p> <p style="font-size: 12.16px; line-height: 15.808px;">cd ..</p>