All posts by Vik

Update: House Electrical Work

Late last year I started updating Electricals in our 1900s Foursquare. Over the 100+ years of this historical house, many families have lived and of course they have done their share of updates to the House’s electrical system. When I began, the house had approx. 70-80% of the wiring in the form of dreaded Knob & Tube wiring. Updates made by previous owners had resulted in a mix of all kinds of wiring – K&T, NM and even BX – resulting in a hodge-podge. During the purchase of the house, we had the house inspection done and of course this came up in the inspection report as well. Therefore, I knew from the very beginning what we were getting ourselves into. However, since we wanted an older house in Historical district of Fort Wayne, IN, it was expected to have such flaws in electrical wiring, i.e. not uncommon to see K&T. But after the purchase in October, I was determined to take care of updating the Electricals. I had set myself following goals:

  1. 100% elimination of K&T or BX, and only NM cable throughout the house
  2. Replacing existing in-wall Light Switches to Smart Switches
  3. Installing GFCI receptacles where code requires
  4. Adding new outlets in several much needed areas throughout the house
  5. Finally, the big one to upgrade the Electrical panel to 200A service since the current 100A panel is maxed out

Obviously, I left #5 to the pros as I don’t like to mess with Service panels. Since it’s also most expensive, I am saving it for 2018.

So, what about the rest of the goals?

100% elimination of K&T or BX, and only NM cable throughout the house

As of today, I am happy to report that our house is now 75% on NM cable and only 25% of K&T is remaining. This 25% is equal to only 2 circuits in the house with K&T and it’s mostly lighting. That’s a phenomenal progress! Looking forward to 100% completion in 2018. Then I can rest assured that house wiring is safe and can hopefully last another 100 years.

Replacing existing in-wall Light Switches to Smart Switches

I am very much into Smart devices. Ever since we got our first smart device – the Nest Thermostat, I had been wanting to get into Smart electrical switches. Then when I was doing the Kitchen renovation last year, I installed the first ever smart light switch in the Kitchen. Paired it with Wink Hub and it was an instant joy! Fast forward today, we have a total of 15 smart switches including a couple of dimmers as well. This total is 65% of our light switches in the house! The remaining will be replaced by smart switches soon. One of the reason why there is still 35% remaining is because most of these switches are part of the 2 circuits still on K&T. In traditional K&T, switches do not have a neutral wire and these smart switches require a neutral wire. Therefore, usually when I replace K&T wiring I also change all the connected switches to smart switches. So this one also a goal for 2018 to finish up.

Aside from these smart switches, I have 1 smart outlet as well. This is installed in a strategic location in the Kitchen I call “Crockpot Area”. As the name might suggest, the intent is to have a Crockpot running off this smart outlet and I can schedule this outlet to automatically turn off through Wink!

Installing GFCI receptacles where code requires

We had several findings in the house inspection report at the time of purchase related to absence of GFCI receptacles in areas such as Kitchen, Basement and Garage. As of today, I am complete with installing those wherever they were noted in the report.

Adding new outlets in several much needed areas throughout the house

Quite a lot of work done in this regard:

  • 5 new outlets in Living Room
  • 2 new outlets in Kitchen
  • 1 new outlet in Stairway Upstairs
  • 1 new GFCI outlet on Front Porch

Also, did several corrections:

  • Removed all Baseboard outlets. Why in the world would someone ruin gorgeous Baseboards by installing outlets there!
  • Installed new in-wall electrical boxes wherever there were none. That’s right, there were outlets with no boxes!
  • Corrected bootlegging. I just cannot believe this was done by knowledgeable electricians! It’s extremely dangerous. So, when I replaced the wiring I connected the ground properly. Wherever, I could not install new wire, I changed the outlet to 2-prong instead of 3-prong with dangerous Bootlegged ground.

Overall, 2017 was a great year to make these electrical updates to the house and in 2018, hopefully I will complete rest of the updates.

Fixing Random Samba Share Lockouts w/Docker

Continuation of my previous post about fixing random Samba Share lockouts. I discovered that Docker and Samba were fighting to gain access to the folders. If I set the label to samba_share_t, then Docker loses access. If I allow Docker (with “Z” option while running container), then Docker resets the label to “svirt_sandbox_file_t”. How can I make both use it? Turns out there is a solution. Credit to this Serverfault post: https://serverfault.com/a/881098/449814

Create a new SELinux Policy Module to allow Samba to access the Docker label.

Then start the Docker container with Volumes mounted using “Z” option. You should now be good to go with both Samba and Docker living together happily ever after…

 

Fixing Random Samba Share Lockouts

Ever had Samba shares on CentOS become randomly inaccessible? If so, I might have a cure… Turns out the culprit is (yet) again SELinux. Thank you SELinux for your super sensitive security policies…

It turns out that you might have lost extra important SELinux label on the share and sub-folders. Don’t ask me why and how? Perhaps a boot failure or power failure or random act of God?!

OK, here’s the solution you are looking for. Logon to your CentOS server and simply issue the chcon command. Be sure to do it recursively if you want to access sub-folders inside.

and that’s it! This will once again make that share accessible. Really… that simple!

EDIT: I figured out why lockouts were happening. It turns a Docker container was accessing these shares and resetting the label. If I set the label back to samba_share_t and make Docker container stop resetting it, then Docker container loses access to the folders. argh!

Fixing Grub2 on Centos 7

Grub2 is a very frustrating bootloader esp. when it fails. Here are some of things I have tried that have worked in the past related to Grub2 errors.

Symptom – System starts into Grub2 prompt or simply does not start.

This happened to me recently when yum package update broke something in Grub. The system was booting into Grub2 prompt. This happened on my system because of bad grub.cfg file. Assuming you still have a valid backup of this file available, you can follow the steps below:

1. Type commands

 

2. The root directory should be automatically set to your EFI partition and Prefix should be set to the EFI folder. Then find out a valid backup file for grub.cfg in /efi/centos. For me it was, grub.cfg.1509824788.rpmsave

3. Issue command

4. You should now be able to see the Grub2 boot menu. Just select a valid entry and system should boot normally

5. Once in, overwrite the grub.cfg file with the backup file you used to boot. Reboot and hopefully you should be booting normally

Alternatively, if you have Centos7 Live USB, you can skip Steps 1-4. Boot into rescue mode. Then chroot into your root partition (chroot /mnt/sysimage). Once done simply replace grub.cfg file with a backup file (Step 5) above.

How to cook perfectly spicy Maggi

It’s easy.. You need 1 pack of Maggi. Use a non stick pan and add 1 cup of water. Then add the spice mix. This step is important to put the spice mix before putting noodles. Then mix and allow the water to heat up but don’t boil. Then take Maggi and split in the middle to split the two layers. Put each layer in the pan. Wait 1 minute and then turn each layer. In 1 minute it should start softening. Then use a flat spatula to carefully split the noodles. Do not put pressure or break them. Mix and allow water to start boiling. In about 2 minutes water will be there but not completely gone. Then here’s the trick to get spicy taste… Add hot sauce. I use LA Victoria Salsa brava hot sauce. Add maybe 1 tablespoon. Mix thoroughly and then allow water to dry. It’s ready. Serve in a bowl. 
Of course you can put veggies. I just made mine plain. 

Hot sauce

Jasmine my print server

Last week I built a print server at home. I already have a home server called Jarvis which does media sharing through Plex and runs this blog but it’s situated in the basement. The printer I wanted to use is a USB label printer therefore it wasn’t feasible for me to use Jarvis as a print server as it would have required a very long USB cable from basement to second floor where my home office is. So I decided to build a new server which I could keep in the home office. I knew that this server does not need to be a very high end server with respect to configuration since all it will do is printer sharing. Therefore, I decided to build it using low end components. I already had a spare computer case, a stick of 4GB Laptop DDR3L RAM, a spare 120GB SSD and a mini PCIe Wireless card pulled from a laptop I used to own. All I needed was a PSU, motherboard (that could take laptop RAM and mini PCIe card), CPU and antenna for Wireless card. My total budget was around $80; comparable wifi printers were running over $100.

I began my search for a motherboard and CPU by looking for an embedded solution, i.e., a motherboard that comes with an onboard CPU. I had heard of AMD AM1 motherboards with onboard Kabini CPUs and also of Intel boards with Celeron. I was also interested to see if I can buy a board that had onboard DC jack. That would eliminate using an internal PSU. However, I eventually decided against a motherboard with onboard DC jack as those motherboards were expensive and they still required external AC Adapter which were running around $20. Searching on Newegg.com I finally found a suitable motherboard called ECS BAT-I, a mini-ITX board with onboard J1800 Intel Celeron processor; small and powerful enough that has a slot for laptop RAM and a mini PCIe slot for wireless card. Cost $40.

Photo courtesy Newegg.com

For PSU, I decided to buy Corsair CX430 PSU from Newegg.com for $40 but had a $20 Mail-in-rebate. I had used CX430 before and I knew it’s an excellent PSU for the price. Although, a bit too much power for the CPU and Motherboard but nevertheless I thought it’s the best value for money. Cost $20 (with Mail-in-rebate).

Photo courtesy Newegg.com

Finally, I needed antenna for the mini PCIe Wireless Card. I found one on Amazon.com for $10 which seemed to have good reviews.

Photo courtesy Amazon.com

With all the components in my possession, I assembled the computer. Then I installed CentOS 7 on it as the operating system. I chose CentOS because I was already using the same for Jarvis and it’s a fantastic OS for a server. I finally named my new server “Jasmine”.

The overall cost for Jasmine came out to be $50 which I spent only for CPU/Motherboard, PSU and wireless antenna. Of course, I was lucky to have the other essential components such as a Case, SSD, RAM and Wireless card already handy. However, if I didn’t, it would have been a challenge to contain the cost to $80. More than likely then I would have chosen Raspberry Pi.

Links to components

Interested to know how I configured CentOS for print server and Windows to use network printer? Check my post here

How to configure Brother QL-700 label printer on CentOS

I recently built a print server at home where I have attached the Brother QL-700 label printer. That printer does not have Wireless printing feature and I wanted to have all computers in the house be able to use it over the network. I thought of buying a new label printer that comes with Wireless connectivity but I couldn’t find any brand new label printer less than $100. Then I had an idea. Why don’t I build a print server? So using a few spare computer components and purchasing a few new components, I built a print server. But that’s not what I want to discuss in this post… (maybe a dedicated post for that – finally one here). What I really want to discuss is how I configured my printer to work on CentOS and be able to print through Windows.

Assumptions:

  • You have the printer plugged into the CentOS computer using USB port
  • The computer has CentOS 7 (might work for earlier versions as well)
  • The computer has network connectivity (either Wireless or Wired)
  • “CUPS” is installed and accessible via http://<server host>:631
  • Samba is installed and running on the Server

Step 1: Download and install the printer driver

Brother’s website actually has printer drivers available for CentOS. 

  • After installation is successful, install the printer driver in the order below

  • After installation is successful, set the Default Options for the printer in the CUPS portal
  • Go to the CUPS portal, then Printers tab
  • Select the QL-700 printer, then in the “Administration” drop down, select “Set Default Options”
  • In the “Basic” Options, set Media Size to the most appropriate paper size in the printer. For me it was “62mm(2.4″)”

Step 2: Configure SELinux

SELinux will deny you access to printer. This is where I spent many hours trying to figure out why my printer wasn’t printing anything. To remedy this, do one of the following:

  1. Permanently disable SELinux (Not recommended)
  2. Temporarily disable SELinux (It gets enabled next time server reboots – so not really very useful)
  3. Configure it to permanently allow Printer access (Recommended)

I chose Option 3. Here’s how to configure SELinux to allow Printer access:

  • Temporarily disable SELinux

  • Then print a test page. This will be in CUPS portal -> Printers. Under “Maintenance” drop down, “Print Test Page” Option
  • Hopefully, a test page will be printed
  • Then log on to the Server to find out what SELinux policies to set

  • This should print something like below

  • You need to then create an SELinux module out of above by running the following command

“cupspolicy” name is representative. You can give any name as long as it is unique for SELinux

  • After this, make the policy package active by running following command:

  • Now either reboot the server or remove the SELinux permissive mode

You should now be able to print another test page. At this point you are all set for configuring Samba.

Step 3: Configure Samba

I use Webmin to manage the server. This allows me to use a GUI interface to perform Samba configuration. If you know your way around commands you can do the same through Console as well.

  • In Webmin, go to Servers -> Samba Windows File Sharing
  • Select “printers”, then set various options as follows

  • Save and then go to “Security and Access Control”. Then give “Guest” access (or any other level of access as you need)

  • At this point you should be all set from Server side

Step 4: Configure Windows computer

  • Go again to Brother’s website and this time download drivers and software for Windows 10 64 bit (or other Windows): http://support.brother.com/g/b/downloadlist.aspx?c=us&lang=en&prod=lpql700eus&os=10011
  • Install the driver and software
  • After that, Add the network printer by going to: Control Panel\Hardware and Sound\Devices and Printers
  • In the “Add a device” wizard, select “The printer that I want isn’t listed”
  • In the next screen, select “Select a shared printer by name” and then in the input box, type the http address for the CUPS site for the printer. It should be something like “http://<serverhost>:631/printers/QL-700”
  • When I asked for Driver, select “Brother” as manufacturer and “Brother QL-700” as printer

  • Hit OK and complete the set up
  • After that the QL-700 printer should show up under “Printers”
  • Next, you need to create a Custom Layout in “P-touch Editor”. This step was required for me because I wanted to print small address labels but the printer was erroring out not recognizing the layout (Hint: red flashing light)
  • In the “P-touch Editor”, open the “Small Address Label” (2.4″ x 1.1″) layout, and then set the Length from 1.1″ to “Auto”

  • Save the layout as “Custom_Small_Address” or any other name (File -> Save As)
  • Then import the layout in “P-touch Address Book” software. This is the software I use most frequently to print address labels (Layout -> Import Layout). The custom layout should appear under “My Templates”
  • At this point, you are all set. Try printing the label using the custom layout and hopefully it will print

Problems?

Let me know if you are facing issues. It took me several hours to find out what was wrong but finally I was able to configure the printer. It may be same for you. I can try to help you if I could. Most of the issues were related to driver install, SELinux and media size, so be sure to follow each and every step above.