IT

Computers and stuff

Hardware

Random notes about hardware.

Hardware

Windows 10 drivers for AMD 740G chipset (AMD Radeon 2100, both 32- and 64bit)

NOTE: Despite the publish date, this note is originally from December 2017.

If you've tried to install Windows 10 on an older setup that runs on AMD 740G chipset (which integrates ATI Radeon 2100 graphic chip), you might have run into the issue where Windows 10 fails to locate proper drivers for the integrated GPU and it uses generic graphics adapter driver instead, which is only able to run 1024x768.

I have found deep in comments on some IT news site someone mentioning they got it running through Windows 7 drivers for an MSI motherboard with the same chipset (I myself tried a lot of different drivers for Windows 7 from Gigabyte, neither of them worked and one of them even bricked my whole setup). Anyway I tested bunch of MSI drivers and found working ones.

This was tested and works on: Gigabyte GA-MA74GM-S2, rev. 3.0 (hardware ID is PCI\VEN_1002\DEV_796E\SUBSYS_D0001458\REV_00). Frankly, I don't remember the exact source for these drivers, but they are from the MSI website, downloaded as Windows 7 chipset drivers for a random MSI motherboard with 740G, so you can try to re-find them if you don't trust this unknown blog with bunch of articles written in weird language running on basic WordPress.

Though it does look more trustworthy than www.download-every-single-driver-in-the-world.com, doesn't it? No, seriously, I will try to eventually cite the proper source. Edit: Someone found it and posted the links in the comments, feel free to download directly from MSI. If this have helped you, please note in the comments which motherboard have you used with these drivers so others can find this easily as well:

Where to download the drivers:

How to install this driver?

  1. Pres WinKey + R, type in devmgmt.msc and Enter (or simply access the Device Manager any way you like)
  2. Expand the option Display adapters
  3. Right-click on the graphics adapter and select Update Driver Software...
  4. Select the option Browse my computer for driver software
  5. Point the path into the folder you just unzipped from the drivers you had just downloaded.
  6. Keep clicking Next until the end, and then restart the computer

Known issues

I have ran into an issue when the computer has two separate LCDs plugged in (into the VGA and DVI port). On those computers, some (not all) of the graphic elements in Windows 10 are blurred (as if the displayed pixels don't match the physical pixels). It only happens with desktop icons and some of the settings. I have spent another afternoon on this after finally I gave up. Tried everything and nothing works. However even if you really need to run two displays, it's just a little annoying but totally can be lived with. All the other computers that have only one screen attached run perfectly. If anyone manages to find out what might cause this and how to fix it, please let me know in the comments!

Hardware

Brother QL-600 Label Printer

Brother QL-600 as a native system printer in macOS

Brother only offers to use their software to print labels via their P-Touch Editor (macOS App Store) without having to install the Brother as a system printer in System Preferences, which is fine for random regular labels.

But sometimes you have the .pdf file with a shipping label that you want to print directly from Preview (CMD+P).

I have found this driver to work, albeit I have no clue where it they from, since I could not find it on Brother's website.

The hoops some jump through to print a simple shipping label are downright ridiculous and 100% not necessary:

brother-ql-600-label-printer-macos-drivers.jpg

IP cameras

Notes and reviews for random IP cameras, usually in regard with their use with ZoneMinder DVR.

IP cameras

IP camera Techage TA-XM-608GP-AI-30 (3MP)

Specifications

Worth mentioning

RTSP stream URL for ZoneMinder or VLC:

rtsp://192.168.1.150:554/user=admin_password=tlJwpbo6_channel=1_stream=0&protocol=unicast.sdp?real_stream

Random settings:

# In-camera setting: "H.265X" + "4MP"
Video: h264 (High), yuvj420p(pc, progressive), 2560x1440 [SAR 4:3 DAR 64:27], 25 fps, 10 tbr, 90k tbn

# In-camera setting:"H.265" + "4MP"
Video: hevc (Main), yuvj420p(pc), 2560x1440 [SAR 4:3 DAR 64:27], 25 fps, 10 tbr, 90k tbn

# In-camera setting: "H.265X" + "3MP"
Video: h264 (High), yuvj420p(pc, progressive), 2304x1296 [SAR 4:3 DAR 64:27], 25 fps, 10 tbr, 90k tbn

Fixing the wrong aspect ratio without re-encoding

With ZoneMinder's pass-through recording, for some reason my camera's raw footage is saved with a 64:27 aspect ratio. This means that it is a bit more noodly than it should be. This is fairly easy to fix with ffmpeg:

ffmpeg -i in.mp4 -aspect 16:9 -c copy out.mp4

Since I couldn't get ZoneMinder to force this parameter (-aspect 16:9) directly this as it saves the stream, I use this quick and dirty solution that runs via crontab every hour or so and fixes the recordings for me:

#!/bin/bash

# FIND ALL MP4 in /CCTV/1 OLDER THAN 60 MIN BUT YOUNGER THAN 4 HOURS (ASSUMING SCRIPT WILL RUN EVERY UNDE 4 HRS)
# CHECK WITH FFPROBE WHETHER THE FILE HAS BEEN FIXED YET
# IF NOT, FFMPEG WITH proper AR

CCTVDIR=/cctv/1

while IFS= read -r input; do
	ffprobe "$input" &>/tmp/ffprobe-techage.txt
	filecheck=$(cat /tmp/ffprobe-techage.txt | grep Stream | grep 16:9)
	if [ -z "$filecheck" ]; then
		echo "Recording "$input" needs to be fixed. Proceeding..."
		oldname=$(basename "$input")
		fixedname=fixed-$(basename "$input")
		directory=$(dirname $input)
		ffmpeg -i "$directory"/"$oldname" -aspect 16:9 -c copy "$directory"/"$fixedname" </dev/null
		mv "$directory"/"$oldname" "$directory"/"$oldname".old
		mv "$directory"/"$fixedname" "$directory"/"$oldname"
		rm "$directory"/"$oldname".old
	else
		echo "Recording "$input" has been fixed already. Skipping..."
	fi
	rm /tmp/ffprobe-techage.txt
done < <(/usr/bin/find $CCTVDIR -name '*-video.mp4' -mmin +15 -mmin -1440 -type f)

Sample footage

Will add at some point. Overall very nice image for $35.

IP cameras

IP camera Techage TA-XM-605GP-AI-50G (5MP)

Specification

Worth mentioning

RTSP stream URL for ZoneMinder or VLC:

rtsp://<IP-ADDRESS>:554/user=admin_password=tlJwpbo6_channel=1_stream=0&protocol=unicast.sdp?real_stream

Random settings:

# H265X + 5M + Best + SmartEncode: Closing
Video: h264 (Baseline), yuvj420p(pc, bt709, progressive), 2880x1616, 20 fps, 20 tbr, 90k tbn

# H265X + 5M + Best + SmartEncode: H265X
Video: h264 (Baseline), yuvj420p(pc, bt709, progressive), 2880x1616, 20 fps, 20 tbr, 90k tbn, 40 tbc

# H265 + 5M + Best + SmartEncode: H265+
Video: hevc (Main), yuvj420p(pc, bt709), 2880x1616, 20 fps, 20 tbr, 90k tbn, 20 tbc

# H265X + 4M + Best + SmartEncode: H265X
Video: h264 (Baseline), yuvj420p(pc, bt709, progressive), 2560x1440, 20 fps, 20 tbr, 90k tbn, 40 tbc

Sample footage

Will add at some point. Do not recommend, the resolution is high, but the image quality seems to be upscaled from 1080p at best. This is confirmed by one of the reviews at AliExpress: "In short, the quality of Techage has ended, I will not take anything else here. The module in this camera ivg-g5 marking gk7605v100. but the matrix here 2 MP and resolutions 5 and 4 MP interpolate from it. Hanged instead of the old one and immediately it became clear that something was wrong, the vertical coverage field decreased strongly, and the clarity of the details disappeared, the picture was soap."

IP cameras

IP camera TP-Link Tapo C110

Specifications

Worth mentioning

RTSP stream URL for ZoneMinder or VLC:

# NOTE: Login needs to be first set up in the Tapo app.
rtsp://{username}:{passwrod}@{ip_address}:554/stream1

Random settings:

# Default settings (not sure if can be adjusted)
Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 2304x1296, 697 kb/s, 14.99 fps, 20 tbr, 90k tbn, 30 tbc (default)
Audio: aac (LC) (mp4a / 0x6134706D), 8000 Hz, mono, fltp, 20 kb/s (default)

Sample footage

Will add at some point. Overall very for interior monitoring (pets).

Networking

Networking

Ubiquiti USG - spoofing MAC address of the WAN port

As of writing this guide (January 2019), there is no easy way to quickly spoof (clone) the MAC address on the WAN port.

Which is ridiculous, because it's often the very first thing that needs to be done. Yet with the Ubiquiti USG, there is no simple way to do it in the controller's GUI, so I decided to write up this quick step-by-step recipe, since I haven't found one simple enough for people entirely new to the Ubiquiti's ecosystem (like I was), its Controller (note: no interaction with the controller is needed for this), etc.

ubnt-usg-unifi-security-gateway.jpg

Though I do assume you've used ssh before. So, we have the Ubiquiti UniFi Security Gateway (USG) and we want to spoof (clone) MAC address of the WAN port – usually when you need to clone the address of the old router (otherwise the internet won't work).

How to spoof MAC address of WAN port on the USG:

1. Log in directly into the USG using ssh

You can use Putty on Windows, or Terminal on UNIX/macOS.

To log in, use credentials created during the initial setup (these are different from UniFi Controller's login credentials – i.e. not the email). I am using Mac & Terminal.

ssh admin@192.168.1.1

After login, you will be welcomed by a UniFi text art, where there's one sentence worth noting:

Configuration changes made here are not persistent. They will be overwritten by the controller on next provision.

It basically says that anything we'll do here won't last past the device's next full reboot. I did not noticed that the first time, and the WAN's port MAC address returned to default when the USG's rebooted after the next firmware update few weeks later and suddenly the internet was down and I didn't know why.

2. Change the MAC address temporarily

Theoretically you can go directly to step #3, but this is a good step to make sure you are cloning the correct MAC address to the correct physical port, and also it works immediately without needing to reboot the USG and Controller. So once you are in the command line, issue this sequence of commands:

configure
set interfaces ethernet eth0 mac 10:7B:EF:2F:3C:38 # of course change the MAC to yours
commit
save
exit

The USG has three RJ45 ports, where the WAN port (the first one) is eth0, you can also change the MAC address of the other two ports as well by doing eth1 (the default LAN port in the middle) or eth2 (LAN/WAN port which is the furthest on the right).

Now check if the new MAC address works. I am not sure how to check that, actually, I just ran ping 1.1.1.1 in other Terminal window and waited until it started responding).

If it does work, you can proceed to the final step #3:

3. Making the settings permanent

The quickest way is simply to take this piece of json, edit the MAC address (to match the one above) and then save it somewhere as config.gateway.json file.

{
    "interfaces": {
        "ethernet": {
            "eth0": {
                "mac": "10:7B:EF:2F:3C:38"
            }
        }
    }
}

It is recommend to double check the validity of the file, e.g. on jsonlint.com to avoid any issues. Now place this file in the UniFi Controller's site folder. Depending on where you installed the controller, this most likely will be the directory named default in these locations:

If it's not there, just look for the sites directory with find / -type d -name "sites" -print 2>/dev/null.

That's all. Now the MAC setting will be loaded even after a full reboot. You can test and verify that everything works as it should by forcing provision (described here), tl;dr: UniFi Controller Devices > USG > Config > Manage Device > Force provision, or by simply rebooting the USG.

The json file is basically for pieces of settings that cannot (yet) be done through the UI (i.e. through the Controller). It is all well described in the official documentation.

Apple

Apple

Self-hosted iOS photo backup over WiFi

Candidates to try

Random

To be sorted out later