Raspberry Pi 4 - devil's curse from hell

Cool Buddy

Wise Old Owl
This is probably going to end up less a review of the product and more of a rant about my awful experience with the Raspberry Pi 4. However, at the risk of the post getting deleted by the mods, I would still like to go ahead with it.

I had been wanting to buy a Pi for some time now. I didn't really have a lot of use of it. I just wanted to share my hard drive over my network and create an always on torrent machine. I was always skeptical of the Pi's performance, given its specs, so kept delaying my purchase. However, when the Pi 4 came out, the 4GB RAM option was just enticing enough that I ended up ordering one. Little did I know that I was inviting the devil's curse home.

First up, the Pi is slow, ridiculously, unbearably slow. With a Samba server and Transmission client running in the background, letters take time to appear in the terminal window. If I open 3 tabs inside Chromium, that's the death knell for the Pi. When I tried doing this, just a few times of course, it gets stuck completely and I have to switch it off. And god forbid if I try playing a video inside the browser!

Next, the Raspbian OS, including NOOBS, is buggy. NOOBS just didn't work for me. I finally found a solution and installed Raspbian directly, which, thankfully, worked. But it's very unstable. As mentioned earlier, it hangs at the drop of a hat. At times it crashes as well. Settings changes take ages to implement and at times, just refuse to change. For instance, just now I tried moving the taskbar to the bottom and it just wouldn't. The settings window closes after clicking ok, but the taskbar stays on top.

The board has a heating issue. Now you might find reviews about the heating issue and reviews telling you that the issue is not that big, but trust me, for Indian climate, it is an issue. Even though Mumbai doesn't have much of a winter, the weather is still cool right now. And yet, with moderate usage, the Pi was hitting 70 degrees. I got a heat sink and a fan to keep it cool, after which the temperature dropped below 45.

Since there's not much else to do with the Pi, seeing how it can hardly run anything more than one torrent client, my remaining issues are with Linux. For a person who is used to Windows, Linux is simply impossible to use. And I'm tired of hearing that I haven't spent enough time with it. Over my life, I have used all versions of Windows through 98 to 10, Mac OS, Android, Symbian OS, iOS, and Ubuntu. I haven't struggled with any of these other than Linux.

It was probably some 10 years ago when I tried Ubuntu for the first time. When I use it today, I see the exact same UI, and exact same unfriendliness of usage. The Ux and UI have not evolved even one bit over the last entire decade. A simple thing like installing a software still remains a challenging task on Linux.

Setting up anything from Transmission to teamviewer requires you to follow an instruction manual. There's no intuitive process for anything. And setting up doesn't mean just installing a software, it also means going to battle with the software's settings and file permissions and user permissions, all of which seem rigged to make it impossible to actually use the software. And changing settings doesn't mean going into settings dialog and clicking a few checkboxes, it means hunting through your file system to edit multiple text files with absolutely zero lines of human readable text. Setting up transmission requires me to edit settings in 3 different files.

However, the worst is yet to come. Even after following all the instructions to the t, there's no guarantee that the software will work. In fact, it's almost guaranteed that it will not, no matter which guide you follow. Every single software which I installed required me to hunt through multiple forums to resolve all the issues I faced after following the instructions.

All in all, it's been my worst spent 6000 rupees. It's completely and utterly useless as a computer and no one should ever recommend it for anything other than robotics projects. At the very least, should not recommend to non-IT people who are not already familiar with Linux. A device which cannot run two programs simultaneously should not be called a computer.
 

cute.bandar

Cyborg Agent
I totally understand your frustrations with linux. Completely. I realized only too late that linux is just not worth the trouble. Now I use freebsd on my server. Windows on my desktop. Peace.
That said, performance is generally never this bad that letters take time to appear. Even in far lower speced machines. Can't say what's causing it.. maybe overheating, maybe some process.

btw I think there is a typo, it seems like you suggest Ubuntu is not linux.
 

Desmond

Destroy Erase Improve
Staff member
Admin
If you want to run a server, why are you using a GUI at all? Just use a bare-bones OS and only use CLI tools such as aria2 and wget for downloading torrents. IMO using a Raspberry PI as a full fledged PC is asking too much of it.

Edit: In other words, using a GUI on a server is a waste of resources IMO.
 

Nerevarine

Incarnate
Hey I understand your frustration, and as desmond suggested, if you are using it for a server like usage, you arent supposed to install a GUI OS at all. But you are right, Linux is extremely frustrating for a newbie. You cannot fix almost any issues without using terminal. There are so many package managers, it would be very difficult to understand for someone new, and linux doesnt treat "Applications" the same way Windows/MacOS/Android/iOS treat them.
But hear me out, try Openmediavault. Its a debian distro DESIGNED to do the tasks you mentioned above, while being responsive (since all the UI you see will be accessed from your home computer's browser). Everything is already set up (mostly)..

These are the docker containers I'm running on my ROCK64 (A SBC Similar to yours, but thankfully cooler).. Dockers are basically isolated subsystems which run a specific app or service.. So I can have a docker for running a torrent client like deluge and have it running and accessible from a specific port on the network. Maybe another docker for running a movie aggregator like radarr, which would run on another port on the network. These two could interact with each other, say I download john wick through radarr, it would ask the deluge running on another port to download and put the movie file in a shared hard drive.

Just give it a go, plenty of tutorials on how to set up omv.
openmedivault.PNG
 

whitestar_999

Super Moderator
Staff member
I also understand as @Desmond David would know from my recent experience of running a video contact sheet tool on my seedbox using ssh. Linux can be quite good & efficient if(& that's a big if) you are willing to put in the effort. I spent a few days & few hours searching,asking & then applying my own theories to experiment & finally figured out the way to do it & now that I know it,it is certainly much faster & efficient than even using similar gui software on windows. However I simply can not recommend what i did to a typical person because I myself am not your typical pc user. The way I see it,putting enough effort to learn about linux is worth only if either it helps you professionally(servers,networking etc) or if you have a genuine interest in learning things just for the sake of learning. For all others it is better to stick to windows,it has been after all the most popular os in the world for decades for a reason & will remain so in the foreseeable future.
 

whitestar_999

Super Moderator
Staff member
@Nerevarine I first read in detail about dockers while reading(just for time pass) "Hands-On Reinforcement Learning with Python" & its initial chapter of setting up OpenAI & TensorFlow. Just found out it can also be used for such media tasks.:grin:
 

Desmond

Destroy Erase Improve
Staff member
Admin
The typical way to use a Raspberry PI is to use it simply as a download tool rather than as a PC in itself. What I would personally do is download the .torrent file on my PC or phone (or get the magnet link) and then send a download command to the Raspberry PI over SSH. This way the Raspberry PI will begin downloading the file and once its done, you just download from it to the device of your choice. This way you don't need a GUI and you fulfill the purpose of your Raspberry PI.

A somewhat more advanced setup could be to monitor certain patterns of torrents from time to time (such as availability of a TV show torrent) and download the torrent when it becomes available. This removes the need for manual intervention when downloading.

Let me know if you need detailed instructions for setting up something like the former.
 
OP
Cool Buddy

Cool Buddy

Wise Old Owl
Thanks a lot for the suggestions guys.
@Nerevarine I'll definitely read up a bit openmediavault. Now that I'm not going to use it for anything else, I might as well use an OS purpose built for my usage patterns.

@Desmond David Even thought I have used command line for ages now to execute a few commands here and there on Windows or write small batch scripts with basic functions, I'm just not comfortable enough to work with a PC without a GUI. Having a GUI helps a lot. For instance, I can browse for file from the file manager, I can see that the drives are mounted just by navigating to that folder, I can open a browser window side by side and copy paste commands from there, etc.
I understand how all this can be accomplished using Putty from a remote machine as well. Now that Samba and transmission are already set up on my Pi, I might try to run it headless. Maybe that will also help the CPU stay slightly cooler.

While I don't want to monitor for TV shows etc., I did try to create a script to monitor a folder for torrent files, so that I can simply put the torrent files on the shared folder and the Pi will pick it up from there. Unfortunately the Pi crashed before I could fully set up the script and try it out. I'm yet to create that script again after reinstalling raspbian.
My script was written in Python and what it did was to try to determine the type of content from the torrent file and start the download in the right folder. For this it scanned the torrent file for known trackers, if this fails then check file extensions, then based on number of files and/or file name patterns, determine the type of content. So for instance, if the torrent has a file with the patters S\d\dE\d\d or \dx\d\d it goes into TV folder, if it has mp3 or flac files, it goes into music folder, etc. The script was working as expected. When I ran it manually, it managed to add the then available torrent files with the correct destination folder.
If you could help me call this script every time I add a file to that folder, that would be much appreciated. I tried inotifytools, but I couldn't run it as a daemon, kept encountering errors.

Once again, thanks everyone. Now I feel like I'm not alone, I feel less dumb for not being able to use linux :D
 

whitestar_999

Super Moderator
Staff member
@Cool Buddy have you thought about using rss feed auto downloader for torrents,you can set up multiple filters using regex expressions & your torrent client will start the torrent as soon as it is published on the rss feed of torrent site.
 

Desmond

Destroy Erase Improve
Staff member
Admin
I can browse for file from the file manager, I can see that the drives are mounted just by navigating to that folder, I can open a browser window side by side and copy paste commands from there, etc.
Use a FTP client such as Filezilla or WinSCP for that.
Now that Samba and transmission are already set up on my Pi, I might try to run it headless
This is what I meant.
If you could help me call this script every time I add a file to that folder, that would be much appreciated. I tried inotifytools, but I couldn't run it as a daemon, kept encountering errors.
inotifytools is well suited for this, but if you want a simpler solution, you could run a python script in an infinite loop checking for files in a directory. When files are found, then you process them and then continue the loop.
I feel less dumb for not being able to use linux
We were all noob once lol.

Edit: BTW, what are you using for download? Transmission? If you can help it, try using aria2. You can write your python script to call it directly using `os.system(<command>)`
 

Nerevarine

Incarnate
link%20aggregator.PNG


jackett.PNG


deluge.PNG

Use a movie aggregator like Radarr or CouchPotato.. They will give you hits to any websites you set up, instead of having to manually search in these websites, You can even configure quality and bitrate you are looking for, like I set up here above.
Radarr = Movies
Sonarr = TV
Jackett = Torrent Query API
Deluge = Download client (torrents only)

Example above
 

Desmond

Destroy Erase Improve
Staff member
Admin
link%20aggregator.PNG


jackett.PNG


deluge.PNG

Use a movie aggregator like Radarr or CouchPotato.. They will give you hits to any websites you set up, instead of having to manually search in these websites, You can even configure quality and bitrate you are looking for, like I set up here above.
Radarr = Movies
Sonarr = TV
Jackett = Torrent Query API
Deluge = Download client (torrents only)

Example above
This is better than I thought.

Edit: Redact your API key. I removed that image as a safeguard. Add it back after covering it up.
 

Nerevarine

Incarnate
Solution isnt perfect, its pain in the ass to import movies you have manually downloaded earlier to show up in radarr library.. But for the ones you download through radarr, it works just fine..
Im just waiting for new HDD to come, and I'll import it back to my library and get this going..

EDIT: I just realised i got my api key out.. Desmond can you unquote me and ill blur it and upload again..

Anyway, my current setup is running on LAN. But you can choose to get this online and control all this remotely if you use port forwarding (if your ISP gives you that luxury), or something like serveo to do SSH tunnelling.. (add some security measures, use TLS).
Also use something like nginx to do a reverse proxy and have your services under a single outbound port..

like your ipaddress/radarr -> mapped to port 7878 on local (radarr port)
ipaddress/jackett -> mapped to port 7879 on local (jackett port)..
etc..
 
Last edited:
OP
Cool Buddy

Cool Buddy

Wise Old Owl
@Nerevarine I'm more into non-English European movies which have poor availability on public trackers and Netflix/Hotstar/Prime. So I mostly use private trackers for movie downloads. So this automation won't work for me. But thanks for letting me know the options. It's always good to know what's out there, in case I need it in future.

@Desmond David as mentioned above, I use private trackers and Aria2 is not allowed on them. So out of luck there.
My only options are Deluge and transmission. But Deluge doesn't have a GUI app for windows since their version 2.0 was released. The WebUI doesn't allow me to rename files from within. Now I need to rename files from within because, again, I use private trackers and I need to keep seeding. But if I don't rename, Kodi often doesn't recognise them properly. So I end up with Transmission as the only option, which allows me to rename the files even from the web UI and also has a proper Windows application.
 

Nerevarine

Incarnate
@Nerevarine I'm more into non-English European movies which have poor availability on public trackers and Netflix/Hotstar/Prime. So I mostly use private trackers for movie downloads. So this automation won't work for me. But thanks for letting me know the options. It's always good to know what's out there, in case I need it in future.

@Desmond David as mentioned above, I use private trackers and Aria2 is not allowed on them. So out of luck there.
My only options are Deluge and transmission. But Deluge doesn't have a GUI app for windows since their version 2.0 was released. The WebUI doesn't allow me to rename files from within. Now I need to rename files from within because, again, I use private trackers and I need to keep seeding. But if I don't rename, Kodi often doesn't recognise them properly. So I end up with Transmission as the only option, which allows me to rename the files even from the web UI and also has a proper Windows application.

Tell me the name of the tracker, maybe its there in Jackett
 

whitestar_999

Super Moderator
Staff member
@Cool Buddy Since it is a private tracker I can suggest you this solution which is a bit costlier but to me it is better in the long term.

Take the cheapest shared seedbox from seedhost for 500/month. Setup rss feed auto download to start downloading any freeleech torrent(if it is available in tracker) or any torrent. As soon as any matching torrent is published you will connect to it as peer. Seedhost shared seedbox has one of the best racing performance for hdd shared seedboxes,you will easily achieve 2-3 ratio on any torrent from start & for popular torrents you can even achieve ratio of 6+. Keep doing this for a year & you will easily build a buffer of ~20TB+. Now enjoy downloading 20TB without having to worry about seeding long term & as for Hit & Run I think most pvt trackers give ~4 days of seeding before stopping to remove the HnR tag.
 
OP
Cool Buddy

Cool Buddy

Wise Old Owl
@whitestar_999 maintaining ratios is not a worry as one tracker is ratio free and other has a reasonable bonus point system, so seeding for enough time gives me enough bonus points to maintain ratio.

@Desmond David @Nerevarine I have set up cron job instead of using inotifytools. I just found out that there's already a tool in Pi to schedule tasks. So I thought better to use it instead of installing a new application. The cron job calls my Python script every minute. The Python script checks the folder and adds any torrent files there into Transmission. This also takes care of having to select the correct folder every time manually. So as of now, I'm all set up.

And I also didn't know that I could access the Pi's files through SFTP. So learnt that as well when Desmond mentioned accessing the files through FTP.

Thanks guys, I didn't know creating this thread here will be of so much help. I feel at peace now. :peace:
 
Last edited:
OP
Cool Buddy

Cool Buddy

Wise Old Owl
@Desmond David
Does using raspberry pi in headless mode simply mean accessing it through SSH and running the commands?
Or is there a way to disable the display completely, so that the Pi is not unnecessarily processing the screen graphics?

I'm not able to find anything on this. When I search anything with the word headless, all I get are results for how to setup the pi as a completely headless server.
 

Nerevarine

Incarnate
Here is another usecase Ive thought of using a Pi.
Say you want to backup all your photos and do it automatically. You may not have google drive space to continuously push photos at max quality.
Setup sync thing on your OMV server, and on your phone, point to appropriate folders and whenever you are at home connected to your network, all your photos will automatically be backed up to your NAS.
You can then choose to optionally encrypt/compress them.. (automatically)
 
Top Bottom