Compiling isn’t slow on the Raspberry Pi Zero W

Not if you use distcc.

You know what is slow? The USB ethernet, I download around 3 MB/s from it, not even 100 Mbps speed. The micro SD card is around 20 MB/s. That is me transferring a file from the Pi to my desktop. And even my internet is faster then 3 MB/s anyways.

Oh wait, that was by SFTP. That is encrypted. I’d need to download some other way to see what the max speed is.

Under 3 MB/s now.

Kismet thinks my router is a client on my AP

How did it decide that?

I use Kismet to see what’s happening to my WiFi. If my phone disconnects again, Kismet’s log might tell me something, the AP doesn’t. Then I might know if my theory is right, somebody is disconnecting my phone.

How to make Kismet legal

Or semi legal.

  1. Modify the Kismet source, to only log your BSSID.
  2. See if there’s a plugin that does it, or write your own.
  3. Make a script to delete everything that isn’t related to your BSSID.

You can send commands to the web interface, don’t know about deleting though.

select * from packets where sourcemac!='XX' or destmac!='XX'

Change select to delete, and you have a script that’ll delete everything not to or from your AP’s MAC.

If you have more then one AP MAC, then you’ll need to modify it. I disabled my 2.4 GHz radio.

That doesn’t work, delete the *, but it deleted everything. Change the or to an and, and it might work. Yup, it worked.

Now to write a python script, to do that to all the files in the kismet folder.

Script works. It runs by cron every hour, runs a simple shell script, that stops Kismet, then runs the Python script, then starts Kismet.

#!/usr/bin/env python3
import os, subprocess, re
kis_dir = "/path/to/kismet/logs"
pattern = re.compile('\.(kismet)$', re.IGNORECASE)
    kismet_files = os.listdir(kis_dir)
    for file in kismet_files:
        s =, file)
        path = os.path.join(kis_dir, file)
        if os.path.isfile(path) and s is not None:
            print("Scrubbing " + file + ".")
  "sqlite3 " + path + " \"delete from packets where sourcemac!='XX:XX:XX:XX:XX:XX' and destmac!='XX:XX:XX:XX:XX:XX'\";", shell=True)
except Exception as e:

Not the best script, as it does every single file in the folder, even if it’s old and already done.

You use sudo -u pi to run the Python script, no need to run it as root.

It isn’t loading the old file on the restart.

Well, that sucks, I have to download the file, convert it, and then use Wireshark to view it. Or just use the sqlite editor. Only use Wireshark, if you see something suspicious.

So when I get arrested, I’ll tell them it auto deletes everything not related to my AP every hour. When they inspect the my computers, they’ll only find my network.

Now it can’t find my AP, which is right by it. There it goes, I reloaded the module. Going to make the script run as root, and look for -journal files. Then it only has to run sqlite on one file.

There we go, the Python script does everything now. Also, why can’t I call systemctl with I had to use .run.

You can find the new version of the script here. Thinking I should run the other script too, just in case. I’ll probably add the other part in a function, that you can trigger, by putting all after the command.

There’s a sqlite3 library for Python, maybe I should use it instead of the command. But I am lazy.

The script can do all the files now, or just the journal files, doesn’t actually do the journal files, it removes -journal from the journal file, which is the last running file. If it shuts down incorrectly, you’ll have more then one journal file. You can merge them, the script doesn’t do it though. To lazy to update the script again, so the new script, may never be uploaded.

Updated the script on it’s page. Really should of added a MAC Address variable, so you don’t have to put it in four spots.

Kismet is finally installed

How are you supposed to select the WiFi device? Says you can in the web interface.

Edit /usr/local/etc/kismet.conf, look for source, uncomment, and change to wlan1.

I had to unfold the antenna, to get iwlist to show anything. Didn’t want to unfold, so I plugged it in without doing so.

Dec 11 2018 23:54:25 802.11 Wi-Fi device xxx advertising a cloaked SSID

What’s a cloaked SSID? Trying to hack somebody most likely.

Is monitoring WiFi illegal?

If you don’t dump anything, it doesn’t matter.

Says somebody else is on my WiFi, but the controller doesn’t say that.

Nice, somehow it can see the wired device it’s connected to. That’s why it says WiFi Bridged.

Yup, it’s the router, run sudo nmap -sn 192.168.x.0/24 to find out. Well, better shut her down, logging to much info into it’s sqlite file.

Is it legal if you turn packet logging off?

Said there was another wireless client on my AP, but I disabled packet logging, now it says 0. How am I supposed to see who’s on my WiFi without packet logging?

Damn, I’m paranoid. The AP was apparently connected to itself. The AP has more then one MAC.

The fine line between legal and illegal lies in if you actively attack that network or by associating to that device without prior permission from the owner.

From here. Google got in trouble for sniffing. If you don’t log packets, you probably won’t get in trouble. Also, it’ll be pointless. No seeing who’s on your WiFi. Wondering why your phone got disconnected? It won’t be logged. Kind of defeats the entire purpose. You can’t specify to only log your network.

# Do we process the contents of data frames?  If this is enabled, data
# frames will be truncated to the headers only immediately after frame type
# detection.  This will disable IP detection, etc, however it is likely
# safer (and definitely more polite) if monitoring networks you do not own.

Can I capture packets with that? Most of the stuff on Google, is about the old version of Kismet, you can install it in Raspbian, you have to compile the newest version, which is a beta.

On another note, that’s an impressive USB adapter.

Q: Is there anything illegal about Kismet?

A: In and of itself, there should be nothing illegal about Kismet (it’s

fundamentally no different than any other capture tool) but you

should check your local laws first. Note, however:

– Recording data from networks that you do not have permission to

may be considered an illegal wiretap.

– Using networks you do not have permission to use may be considered

‘Theft of Service’ and is illegal.

– Don’t be stupid.
– If you are stupid, I’m not responsible.

If you use the default settings, it’s illegal. From here.

And it has filtering. Going to add my AP’s MAC address.

Filtering doesn’t do anything. That readme is outdated, that’s for the old version. The new version apparently has no filtering. That would explain why the file is .OLD.

No Man’s Sky still doesn’t work in Proton for me


Using those launch options. And the latest beta.

I can see more then white with outlines of stuff, but I can’t see my guy. I think I’m on a spaceport or whatever it’s called, can’t see the floor, the ceilings, walls. Thought I was in my spaceship, but can’t see any spaceships either.

That’s with an AMD RX 460 and the open source driver. Maybe it doesn’t work if the card isn’t in an x16 slot.

The game did open faster, that’s probably the new NVMe SSD.

distcc-pump doesn’t work

All it does is compile locally, on the Pi. What’s the point in using distcc if it’s just going to compile locally? Using telnet to connect works fine.

There’s nothing in the log about the Pi attempting to connect, except the when I had the config wrong, and was trying to use telnet.

 30036  Compile                                                   localhost[0]
 30039  Compile                                                   localhost[1]
 30047  Compile                                                   localhost[2]
 30053  Compile                                                   localhost[3]

 30036  Compile                                                   localhost[0]
 30039  Compile                                                   localhost[1]
 30047  Compile                                                   localhost[2]
 30053  Compile                                                   localhost[3]

 30036  Compile                                                   localhost[0]
 30039  Compile                                                   localhost[1]
 30047  Compile                                                   localhost[2]
 30053  Compile                                                   localhost[3]

 30068  Compile                                                   localhost[0]
 30101  Compile                                                   localhost[1]
 30104  Compile                                                   localhost[2]
 30081  Compile                                                   localhost[3]

 30068  Compile                                                   localhost[0]
 30097  Compile                                                   localhost[1]
 30057  Compile                                                   localhost[2]
 30081  Compile                                                   localhost[3]

Finally got it to try and use my computer.

distcc-pump make -j8 CC="distcc" CXX="distcc"

Don’t follow the instructions on Arch Linux’s Wiki, says to make CXX= or CC= distcc +args. You don’t need to do that apparently.

 Warning: remote compilation of 'protobuf_cpp/' failed, retrying locally

Might need to put Arch Linux on it. Or make my own

Haha, you’ll get failed, if /tmp/distccd-armv6h.log isn’t writable, I deleted it, and remade with root. Then I deleted it again, so I didn’t have to chown it, restarted distccd-armv6h, and now it’s working.

There was one compile failure after fixing the log file. A bunch more failed. Is it a segment fault? That’s the CPU. You have to send it to AMD to get it fixed, out of warranty, so that would cost money.

Should of used -j9, that’ll include the Pi, 8 for my computer, and one for the Pi.

Now to test No Man’s Sky in Proton. Some site that lists compatible games, somebody said what launcher options they used, and there’s a new version of Proton.

I have localhost on the second line in /etc/distcc/hosts, and /1. The first line has /8.

Figured out why it slowed down, it’s using gcc not distcc for some reason.

Do you have to manually install Arch Linux on the Pi? Or just flash the img? If SSH isn’t enabled, and can’t be enabled without a screen, it’s useless. With Raspbian, you make a ssh file on the boot partition, and it enables SSH.

According to the Makefile, it should be using $CC to compile. The capture_linux_wifi Makefile, is using CCLD. Does distcc even do LD? That’s the linker. That command is done, doesn’t say what it’s doing now.

Finally moved on. Will a different timezone on the master and slave cause issues?

__________Warning: 5 pump-mode compilation(s) failed on server, but succeeded locally.

It’s finally done?

Screw cross compiling

That’s to much work, you probably have to compile all the libraries needed.

Also, why would you run Linux in a VM in Windows? Linux should be on bare metal, and Windows should reside in a VM.

No idea why people love Windows so much, you have to pay for it. It has issues. There seems to be an issue with most Windows updates. I only have Windows for games.

Use distcc instead. That should speed up compiling maybe.

Would 20 ODROID-XU4’s speed up compiling? If you use them all. It seems to be working, except it isn’t using very much CPU. All 0%. I stopped it and changed -j to -j8. Still all the distcc processes are 0%. Don’t think it’s using my computer, it ran out of virtual memory.

You need distccd-alarm-armv6h from the AUR. That might not work, it depends if the Pi Zero has the same chip as the original Pi. Looks like the ARMv6 Arch Linux should run on the Zero. Even though it says the Pi regular, that has ethernet.

How to compile the aircrack-ng RTL8812AU driver with monitor mode support on a Raspberry Pi Zero

The Zero and Zero W are the same, other then the W has WiFi.

run make ARCH=arm, otherwise it looks for a non existent arch.

If you want DKMS, you probably have to edit the sh file.

It would be faster to cross compile Kismet. Configure failed again, no working libpcap still. If I followed the instructions, I would of had everything needed installed, didn’t realize the first command they say to run, was longer then I could see.

Kismet is finally compiling.


There’s a semi runny dump

Looks like I’m catching what everybody else had. Took a long time.

My stomach did feel funny for days though. Diarrhea is better then puking. Puking is more painful.

There’s another one.