Showing posts with label Review. Show all posts
Showing posts with label Review. Show all posts

Wednesday, March 14, 2018

A Year in Review

After my last post, I realized that I haven't updated this blog in a long while. So I decided to make a short list of useful things I've found/learned in the past year that others may find helpful.

Downgrading:

Yes, I didn't learn how to do this until this past year. Though I've been using Arch for almost four years now, it was something I never needed (until I did, which of course forced me to learn). But more importantly, after learning how to downgrade packages, I discovered a nifty tool in the AUR which automates the hell out of this process.

The cleverly named 'downgrade' package in the AUR is a real time saver. It allows you to chose from a list of versions for any package in the official repositories. It also has the option to add said package to IgnorePkg, so whatever issue you ran into doesn't occur again.

A screenshot of the downgrade tool in action
downgrade in use


Dependencies:

While it isn't hard to pull up a browser and check to which package a binary belongs, 'pkgfile' (available in the official repositories) makes this so much easier. The usefulness of this tool really speaks for itself.

A screenshot of pkgfile in action
pkgfile in use


Sed:

There's a good chance you're already familiar with 'sed'. If not, it stands for Stream EDitor and it's probably one of the most robust tools out there. I finally got around to figuring out how to use it. Not gonna lie, it looked like straight gibberish to me when I first encountered it. But now, it makes so much of my life so much easier.

If you're yet to learn it, head over to this page and start reading! It took reading this page carefully like six times and practicing using it a whole bunch to get the hang of it but its definitely worth the time investment.

Firefox:

In the past year, I've started using Firefox over Chromium. I heard that a new release was beautifully fast and smooth so I had to see so for myself.

It's true, it's objectively better. When I use pop over to Chromium to log into an account I can't remember the password for, it feels like Chromium is taking twice as long to load a page. I don't know what the Firefox dev team did but whatever it was, it's excellent. Good job y'all!

Desktop Environments:

I'm still using GNOME and i3. GNOME now uses Wayland by default which I'm pretty into but it's basically unusable without using GDM. I've never been a big fan of display managers. It doesn't make sense to me to take up background resources just to have a nice login screen. I enjoy the command line and logging in that way is my prefered choice. But you can't win them all.

Maybe I'll spend some time later figuring out how to circumvent GDM and still have everything working. We'll see I guess.

As for i3, it's still as great as it ever was. I even managed to get displaylink running with it so I can use my portable monitor.

Converting Manjaro to Arch:

Last semester, I needed to install Windows on my laptop so I could use a specific program for a class. It turns out that Windows needs to be installed first, then Arch second. Since it was the middle of the week and I needed to start using that program the next day, I installed Windows and then Manjaro instead of native Arch.

I was worried about time and automating the install process seemed like the smartest move. After using Manjaro for about two weeks, I came to realize that I was having some difficulty solving issues that I felt should be easily solvable. Though Manjaro is based on Arch, it's different enough to where I missed just having Arch on my laptop. I needed Arch back.

So I followed this guide to migrate Manjaro to Arch. I'm actually pretty proud of accomplishing this without a hitch. I skipped some steps and added some of my own and it was all said and done in less than 30 minutes.

Overall:

This was a good year for Linux and me, I feel we really grew closer. We laughed, we cried, and I went an entire year without completely botching my OS. Which is saying something because I've been messing with my system more now than ever.

10/10 would do it all again.

 





StumbleUpon

Wednesday, January 18, 2017

Part 2 - Poisontap: Setting up the device

This post is a continuation of my guide for setting up Poisontap. You can read more about Poisontap here and you can read my previous post regarding Poisontap here.

Part 2 will cover the set up of Poisontap on the Raspberry Pi Zero along with a short review outlining my thoughts on the program itself. This guide uses Raspbian Jessie Lite for the Pi operating system. I also utilized an USB serial cable but this can easily be worked around.

You will need:
-USB Serial Cable
-Raspberry Pi Zero
-Micro USB to Female USB 2.0 or 3.0
-Wifi Dongle

1. Preparing the Device
The biggest problem I ran into regarding getting Poisontap set up on the Pi was the lack of internet access on the device. You can purchase an adapter to be able to attach a USB Wifi dongle or Ethernet cable but the method I used was to be able to use the internet on my Arch laptop via Micro USB cable. Contact me if you want more details on this. For the purpose of this guide, I will assume you managed to connect a wifi dongle to the RPi and have internet access that way.

The first step is to enable the Ethernet on the RPi. I did this through accessing the MicroSD card on my laptop via an SD card reader.

In '/boot/config.txt', add the following line at the end of the file:


dtoverlay=dwc2

Then, in '/boot/cmdline.txt' add the following line after 'rootwait':


modules-load=dwc2,g_ether

Now, you will want to change the network settings to have the Pi act like an Ethernet connection over USB. Depending on the way you configure your internet connection on the Pi, you may want to leave this step for last, as in skip it and come back to it. DO NOT SKIP IT ENTIRELY. On the Pi, in '/etc/network/interfaces', add the following lines:


auto usb0
allow-hotplug usb0
iface usb0 inet static
     address 1.0.0.1
     netmask 0.0.0.0




2. Downloading PoisonTap

If you haven't already installed 'git' on the Pi, you will want to install it now. Then run:


git clone https://github.com/samyk/poisontap.git

Move to the downloaded directory and edit the configuration files to point at the back-end server you set up previously.

Once that's done, you'll want to add the PoisonTap script to '/etc/rc.local' on the Pi:


/bin/sh /home/pi/poisontap/pi_startup.sh &

Make sure to place this before 'exit 0'. Finally, install the following packages to allow PoisonTap to run properly and update the Pi to make sure all other packages are up to date:


sudo apt-get update && sudo apt-get upgrade && sudo apt-get install -y isc-dhcp-server dsniff screen nodejs

And there you have it! You should now have set up PoisonTap successfully on the Raspberry Pi Zero!

3. My Thoughts

Honestly, I'm rather unimpressed with the way PoisonTap operates. It does operate as advertised but I think the buzz surrounding it made me have unrealistic expectations for it.

As soon as I plugged the device into my test machine (my personal laptop), Chromium jumped into lock-down mode, not allowing for any traffic other than HTTPS. I managed to get be able to download browser data once I used Vivaldi as the browser but I still couldn't get any of the remote features to work. I do pride myself on running a tight ship when it comes to the security of my computer and I am completely unwilling to remove settings on this machine in order get this to work. It seems counter-intuitive to me. My goal was to end up with a device that can reliably gain access to machines and I don't feel like that's what I ended up with. This may be different under Windows but I don't have access to a Windows machine so I couldn't tell you.

Overall, if I had to rate this project as a flavor of ice cream, I would go with vanilla. It's good enough as so I'm not entirely disappointed but it certainly leaves room to be more impressive. The biggest take-away from this project was getting the RPi to function as an Ethernet device, which opens the door for future exploits and projects, but if you're hoping to have this 'wild and crazy' hacking device everyone has been describing, you're looking in the wrong place.



StumbleUpon

Wayland on GNOME

I'm gonna keep this one short.

Due to the death of the Infinality patchset, I switched from Plasma 5 back to GNOME 3.22.2 before I connected Infinality's death with the general mucking up of my system. Plasma 5 along with various applications would fail, returning the message that the 'harfbuzz.so' binary could not be loaded. Once I was deep into re-configuring my system (I did a fresh install of Arch and I'm giving Butter FS a whirl) and couldn't seem to stop replacing different components of my usual set-up. This led me to replacing X11 with Wayland (since I was in the neighborhood) and I have to say, I'm rather impressed.

The first thing I noticed was an improved overall responsiveness. Animations and window movement both are much smoother; It feels less like my system is struggling to keep up with me and more like it's predicting my next move. I also lost a little less than 100MB from my system's idle RAM usage. I gained about 3 seconds in my desktop environment load time giving me an average of about 20 seconds from boot to a usable GUI.

(Related tip: If you're using GNOME shell extensions, don't use the Applications Menu or the Places Status Indicator extensions, they added a solid 10 seconds to the loading of 'gnome-session' from X on my system.)

It was enough improvement to give me the confidence to use an animated wallpaper, this one here. Its only been a few hours but I haven't noticed any decrease in performance, though it it eating up around 50MB of RAM (for a net gain of ~50MB).

An interesting change has been the touch pad. Wayland employs 'libinput' over 'synaptics' for the touch pad driver and the support for 'libinput' in desktop environments is still in the works. Currently, the two ways to configure 'libinput' are through your desktop environment settings and through the 'libinput-gestures' package, available in the AUR. I found most of the settings for 'libinput-gestures' to be touchy so I stuck with three finger swipe (left/right) to go forward and backward in my browser and four finger swipe (left/right) to step through open tabs. Generally I've found this experience to be smooth with few hang ups.

The way the cursor moves is also different. I'm not sure how to explain it or if I can even assess whether I like it better or not. Its one of those things you'll have to see for yourself.

A definite draw-back is that with GNOME, there is no scroll coasting under Wayland nor is there two finger horizontal scroll. Both of those where previously handled by synaptics and libinput is yet to implement support for them.

Overall, I'd recommend giving Wayland a shot and seeing how you fare.

StumbleUpon

Wednesday, August 10, 2016

The i3 Tiling Window Manager: A Short Review

When I first head someone talking about "the i3", I immediately pictured Intel processors and was confused as to why someone was expressing so much satisfaction for what I consider to be a very basic processor. Boy was I wrong.

The i3 Tiling Window Manager is the epitome of efficiency on the Linux desktop. With just a terminal running, the environment is taking up a mere 186MB of memory; GNOME clocks in at just under 800MB. Since it's a window manager and not a full desktop environment, its also taking up less of the processor. On first boot, this is noticeable. Everything runs faster. Windows load quicker, web pages load more immediately, applications open without hesitation, and steam runs without any stuttering.

i3 is available in the Arch Linux repos. I recommend also installing 'dmenu', as i3 relies heavily on it in order to function as intended.

As opposed to editing my '~/.xinitrc' configuration, I chose to launch this Window Manager utilizing:


startx /usr/bin/i3


Since i3 is focused on efficiency, most tasks can be accomplished on i3 without using a cursor at all. The manager relies on a series of keyboard shortcuts to optimize workflow efficiency and of course, there is a learning curve. For me, its taken about an hour of consistent use to feel like I can practically apply the shortcuts in an efficient manner.

i3 Window Manager




Everything centers around the 'modifier' button, which can be chosen on first boot or later can be configured in the /.config/ files. I chose the windows key as this is already the key I most heavily depend on in GNOME.  From here, you can use either the default shortcuts or you can configure your own.

Some examples of default shortcuts:

'mod' + 'enter' = New terminal window

'mod' + 'arrow key' = Moves window focus

'mod' + 'v' = Opens next window vertically in the current work-space

'mod' + 'h' = Opens next window horizontally in the current work-space

'mod' + 'd' = Opens dmenu to search for applications to launch

'mod' + 'number' = Switches to work-space 'number'

'mod' + 'shift' + 'number' = Sends the current window to work-space 'number'

'mod' + 'shift' + 'q' = Quits current application


'mod' + 'shift' + 'arrow key' = Move the current window around the work-space.

'mod' + 'shift' + 'e' = Exit i3

For more shortcuts, you can read the config files. You can also set custom shortcuts bound to applications.


Simplicity is the name of the game here. At the bottom of the screen you'll see which work-space you are currently operating in, the amount of disk space available, VPN status, WiFi status, Ethernet status, Battery percentage and time, and the time and date.

i3 window manager



Once you have mastered the basics, combining these shortcuts rapidly will create efficiency like never seen before in your desktop. Coupled with the speed from how light-weight it operates, I can see this window manager becoming my daily driver on my laptop running Arch, Though I will keep GNOME around for when I need to show off how beautiful Linux can be to those I'm trying to convert.

Please feel free to comment and share your own experience with i3 along with any questions/comments!




StumbleUpon

Sunday, August 7, 2016

Puppy Linux Quirky: A review

There are many minimalist Linux based distributions but one in particular comes to mind when talking about minimalist distributions that can also exist as a persistent installation on a USB drive, Puppy Linux.

Now, a persistent installation is different than a LiveUSB in the sense that on a LiveUSB, when you download packages, change settings, and edit files, they all disappear when you reboot. This has it's advantages when it comes to recovering a broken system. These traits make it so that no matter what happens, the LiveUSB will always start up on reboot, allowing you to have a reliable and safe alternative to booting up your computer. A persistent installation is not these things.

A persistent installation operates as more of a full operating system that runs entirely off of a USB drive. You can download packages and write documents, and when you reboot, all of these files are still there. Its more like if you installed a full distribution on an external hard-drive that you could boot up. The advantage of this is that USB drives are small and depending on the brand, durable. For this reason, I keep a Puppy Linux persistent installation on a USB drive attached to my keys. It has 64GB of memory, which is an excessive amount of space for this particular distribution. Puppy Linux is covered by the GNU/GPL licenses and was first created by Barry Kauler in 2003. Since then, many different forks of this distribution have been released, with some being directly supported by the Puppy Linux Project. I opted for the 'Quirky' version and that what this review is based upon.

PROS:

-I literally have a Linux distribution that I can access everywhere I go. This has helped me at work with diagnosing problems on our Windows boxes, circumventing security software that is running on my school's library computer (not for malicious reasons but because it has such a strict rule-set, it deters any sort of good research. It's college for Christ-sake, sometimes I need to google unsavory things.), and test whether a Windows box needs new hardware or if its just Windows being awful (its always the latter, by the way).

-It runs completely out of the computer's RAM. That's right, entirely. So this means that system processes aren't causing constant read/writes to the USB stick, quickly wearing it out. It also means that it's very snappy, even on older computers.

-On boot, it automatically detects the computers hardware and loads the corresponding modules for just that hardware, again adding to its responsiveness. Every windows box I've plugged it into had booted without any issues. I also didn't have any issues using it on a MacBook Pro but I couldn't get it to run on one of those newer desktop macs (can't win em all).

CONS:

-It looks like you're booting a Linux system from 2003. It doesn't have a lot of the bells and whistles that more modern desktop interfaces use. Also, the desktop isn't very configurable. I can change things such as font, panel colors, and the icon set, but when it comes to adjusting the applications menu layout, I haven't had any luck. This is especially a drawback since, to me, the layout doesn't feel very intuitive and I often have to spend more time than I would want trying to find the package manager, which leads me to my next con.

-The package manager, Puppy Package Manager. It isn't very intuitive and isn't something you could hand to a beginning user and expect them to be able to find and download the packages they are looking for. On top of that, it isn't friendly to the advanced user as it cannot be operated from the command line. It requires that it's run using the GUI, which I personally am not a huge fan of.

-I'm sure this is just me being nit-picky, but in order to install the OS, I needed to 'dd' the .iso to one USB stick, live boot into this stick, then install it on the separate stick that I wanted to use it on. This felt like kind of a round-a-bout process but really isn't something I should be complaining about.


Summary:

Puppy Linux Quirky is a great way to have a Linux based distribution everywhere you go, especially if you are reliant on Linux-only tools. It's documented and supported well enough that you can find solutions to most major fixes. But this is not the distro I would pull out when trying to convince friends/family to switch to Linux.

What do you think? If you have any thoughts/questions/anger, please feel free to comment or contact me!





StumbleUpon

Tuesday, August 2, 2016

The Dell XPS 13 (Developer Edition)


Last me just say, I spent hours researching Linux supported laptops and the best reviews were always for the Dell XPS 13. It looked sleek with its aluminum body, minimal weight, and infinity display. I decided to opt for the Developer Edition for a variety of reasons which I will address further in this article, but the biggest reason was the it ships with Ubuntu 14.04 so I knew the hardware would be Linux compatible.

When I opened the box, I was actually concerned at how small this laptop seemed. But once I opened the lid, that concern was dispelled upon seeing the infinity display.


Set-up:


On first boot, the Ubuntu set-up menu came up and I followed the process out of impatience for wanting to play with my new laptop. Once I played with Ubuntu for about five minutes, I busted out my trusty UEFI Liveusb of Arch Linux and wiped Ubuntu off the device real quick. I followed [THIS] installation guide which is very solid. But, once I upgraded my Arch system after booting for the first time, my system broke. My root partition upgraded to the 4.6.4 kernel but my /boot partition remained operating with the 4.1 kernel.

The problem was simple, My root partition and /boot partition were not communicating due to improper mounting. This seems to be a common pitfall of installing Linux on an UEFI system, since it's formatted to fat32 and I choose to use systemd-boot as the guide suggests. The fix was generate an fstab file so these two partitions could communicate. Once I generated this file using the UUID of both partitions, my problems were fixed.

The processor:



Since I love playing games (yet aware that a laptop is the not ideal route for 3D gaming), I quickly installed Steam and downloaded an indie game I’ve found enjoyable, The Long Dark. Surprisingly, the game was running at a lower frame-rate at the lowest quality settings for the XPS than my 2008 MacBook Pro. This perplexed me as one of the reasons I chose this laptop was that it had a dedicated Intel® HD Graphics 520 graphics card. Thanks to the Arch Linux forums, someone recognized that I had one of my flags in my mkinitcpio.conf was loading frame buffer compression for the i915 driver. After altering i915.enable_fbc=1 to i915.enable_fbc=0 in my MODULES options, the system was running the game on high quality textures without any lag. Though I'm sure this means sacrificing some battery life.

I decided to further the endeavor for smoother gaming by also installing Openbox for when I run steam. With this flag enabled, I'm feeling the performance I'd expect out of a machine with a dedicated graphics card, another reason I went with the XPS 13.


Battery:


Since this is a laptop, I installed tlp and thermald through the AUR to optimize battery life. Currently, the only I've found that I get about 8 hours of battery life out of light use (web browsing, document writing). And when I'm running something that is demanding for the processor (such as compiling a custom kernel), I've been getting about 3 hours of battery life. Watching Netflix in chromium seems to balance out around 5-6 hours of battery life. From a dead battery, it take about hour and a half to recharge back to full which feels very rapid to me. Overall, I’m really pleased with the length of the battery life.

Wireless:

What I didn’t realize when opting for the Developer Edition was that this meant instead of it shipping a Broadcom wireless card requiring proprietary software,  it shipped with an Intel 8260 wireless card which is currently supported in the Linux kernel and runs at incredible speeds. Previously, I was getting about 300 KB/s for download speeds on my 2008 MacBook Pro running Arch while sitting in my bedroom. With the XPS 13, I’m getting just under 2 MB/s! This increase feels blazing fast to me. To handle wireless, I went with NetworkManager since it works natively in GNOME and had no issues with setting it up.

Graphics and Display:


From the reviews I read, benchmark tests placed the FHD version with an Intel i5 processor alongside the QHD version with an Intel i7 processor. Since I had absolutely no intention of ever using a touch-screen on my laptop, I decided the FHD screen would fit my needs and my budget. Since I opted for the non-touch version, my screen resolution is significantly lower than that of the touch versions (1920 x 1080 vs 3200 x 1800), but I’m still highly satisfied with the display.


Keyboard:


The keyboard is set up beautifully and is very responsive with a nice feel. The back-light is well designed and the BIOS are set up so that it fades to off automatically after a few seconds of inactivity, a feature which I find to give this computer a very modern and elegant feel.


Touch-pad:


Upon installing the synaptics driver, my touch-pad has worked pretty perfectly without much need for configuration. The only real change I made was to reduce the Clicktime variable, which mostly just makes me feel like my system is more responsive.


Webcam:

Warning: It's weird. It's located in the bottom left of the screen due to the infinity display which create a weird angle for video chatting. But when it comes to Skype sessions, it's not that big of a deal for me. If you were shooting for a webcam with good commercial production value, this is not the computer for you. But if you're like me and only occasionally video chat with other folks, it's pretty sufficient. I would mark this as a compromise but it's a compromise that I, personally, am very willing to make.


Storage:


The version I bought has a 256GB SSD so through utilizing the Arch Wiki SSD Optimizations, that need was met. I've already managed to fill about 32GB of the drive with just steam games, which worries me since there are no movies or music on it yet. But luckily, I also have a 256GB SSD external hard drive so space shouldn't be too much of an issue.

I also decided to commit a major sin and enable a Swap file, as opposed to a Swap partition or as it's recommended for SSD's, not having Swap at all. Enabling Swap on an SSD is supposed to create unnecessary wear on the drive but upon further research, this wear is actually very minimal. I can't seem to find the article outlining the exact numbers but in order to completely burn out an SSD, you would need to write to the drive something like 20GB a day for ten years. I set my vm.swappiness to a low setting and my system is yet to have even touched it.


Ram:


The developer edition ships with 8 gigs of RAM which I've found this to be more than sufficient to accomplish basically any task I need to. I opened every application I could think of/installed (Steam, Spotify, Skype, Terminator, Chromium plus 6 tabs, the entire Libreoffice suite, gnome calendar, gnome calculator, etc.) and my RAM topped out at about 3GB, out of the 8 available.

As I write this review I'm using 2.65GB of RAM and I'm compiling the Linux kernel, writing this in Libreoffice Writer, and running chromium with three tabs for reference, and I'm experiencing no lag in my applications or window switching. Since I'm a broke college student and never had the opportunity to have a nice desktop rig, this is rather impressive by my standards.


My Desktop:

Lately, I’ve been opting out of using a Display Manager. I’ve found it preferable to not boot straight to a GUI as when I have problems, they are easier to fix from the system terminal. For a Desktop Environment, I chose GNOME 3. I really love the minimalist feel of GNOME and the wide range of people contributing themes to get a sleeker looking system (a huge plus when I’m trying to switch friends/family to Linux). Another big plus of GNOME is the stability. I've never run into a stability problem with GNOME which is something to be said.
desktop


desktop


launcher



For my GTK and Shell theme I'm using Arc and for my Icon theme I'm using Vivacious, both of which are available to install through the AUR.



Conclusion:


There are some excellent resources for installing Linux on this machine but lots of research has allowed me to optimize this machine to a level that I'm extremely satisfied with along with compiling a custom kernel to further this optimization. Keep an eye out for a kernel compilation guide for this device in the future.
StumbleUpon