Openness & Discernment

“The undiscerning mind is like the root of the tree, it absorbs equally everything it touches, even the poison that would kill it.”

—Kung Fu (television series)

Recently, I got into an online discussion where someone was trying to convince me that I should listen to some podcast that explained some current conspiracy related to the United States government. I told them that I was not interested.

Then, they encouraged me to have an open mind and listen to both sides of the argument. They also claimed to listen to the “other” side and offered as evidence that they watched CNN.

It’s a strange perspective. The reality is that there are an infinite number of sides. Our perspective is shaped by our lives, and by virtue of that, all of them are unique. We lose this uniqueness when we try to narrow and conform our view to just two possibilities.

Of course, it is important to keep an open mind and to be open to new perspectives. But, it is equally as important to screen your influences. Obviously, if you are screening your influences to limit them to perspectives close to yours or to just two, you are creating a filter bubble (or two) and are losing out on all the variety and opportunities for growth that exist in the world.

But, on the other hand, some ideas are simply bad and do not lead to growth, except in reaction. After getting the basic idea behind notions of racial superiority and judging it bad, it is unnecessary to evaluate every instance of this phenomena. Whether it is Christian Identity in the United States, Hindu Nationalism, notions of the “Original Black Man” and so forth, these ideas are about building a sense of self-worth from one’s racial identity.

Taking pride in being a part of a race is just as much of a part of racism as being prejudiced against people because of their race. One feeds into the other, the yin/yang that perpetuates itself through the generations and forms in and out groups.

It may be that there is a place for this type of thinking in a world with a history of subjugation, such as colonialism and slavery. It may, in some instances, serve as a corrective that at some point is no longer is necessary. Like women only transportation or classrooms, once society has progressed enough these measures can be dispensed with in order to transition to full equality. Although, they can also be obstacles to this kind of progression.

“Separate but equal” systems tend to perpetuate themselves and the very systems of subordination they are trying to address. Similarly, lifting up a race by focusing on the good qualities of the “race” has a similar effect. It is a dangerous crutch, and for me personally, racial identity is not an idea that would be a good lens for viewing the world. No amount of additional information is going to change my mind on this topic. This is a kind of virus meme, and it would cause an illness of character.

It is important to find our own path in this life, and it is impossible to do that if we allow every influence into our mind. Not being discriminating about our influences turns the pure water of our unmediated experience that we can use to live a unique life of meaning into a sewer of preconceived notions. It’s another form of colonization, just of the mind.

To paraphrase the great sage, George Clinton, “You got to free your mind, and your ass will follow.” There is no greater freedom than to choose what is good for you and to limit your exposure to the bad. The trick is not to think the new or different is bad.

The Philosopher Redefining Equality | The New Yorker

“‘People now have the freedom to have crosscutting identities in different domains. At church, I’m one thing. At work, I’m something else. I’m something else at home, or with my friends. The ability not to have an identity that one carries from sphere to sphere but, rather, to be able to slip in and adopt whatever values and norms are appropriate while retaining one’s identities in other domains?’ She paused. ‘That is what it is to be free.’ …

…As a rule, it’s easy to complain about inequality, hard to settle on the type of equality we want. Do we want things to be equal where we start in life or where we land? When inequalities arise, what are the knobs that we adjust to get things back on track? Individually, people are unequal in countless ways, and together they join groups that resist blending. How do you build up a society that allows for such variety without, as in the greater-Detroit real-estate market, turning difference into a constraint? How do you move from a basic model of egalitarian variety, in which everybody gets a crack at being a star at something, to figuring out how to respond to a complex one, where people, with different allotments of talent and virtue, get unequal starts, and often meet with different constraints along the way? …

…To a pragmatist, “truth” is an instrumental and contingent state; a claim is true for now if, by all tests, it works for now.”

—Nathan Heller, “The Philosopher Redefining Equality.” The New Yorker. January 7, 2019.

Sounds like it is time to revisit with John Dewey.

Trying is Lying

“‘I wish someone had told me when I was much younger that I didn’t have to have an airtight legal case for a breakup — all I had to have was a desire to no longer be in that relationship,’ she writes. ‘I would have saved myself a lot of time.'”

—Kelli María Korducki. “Leaving a Good Man Is Hard To Do.” Longreads.com. May 2018.

The test of every ethical choice is whether you’d want to be on the receiving end of it. Personally, I wouldn’t want to be with someone who no longer wanted to be in a relationship with me. So, I tend to think it is good advice.

But, at the same time, it would be real easy to use this way of thinking to cut and run every time a relationship gets hard, and every relationship worth having is going to get hard.

Joan Didion might have put it better in her essay on Self-Respect:

“…anything worth having has its price. People who respect themselves are willing to accept the risk that the Indians will be hostile, that the venture will go bankrupt, that the liaison may not turn out to be one in which every day is a holiday because you’re married to me.”

Freedom & Limits: The ASUS C201 with libreboot and Parabola Linux

Unfree BIOS Software

Surfing the web one day, I came across a mention of libreboot, a free software replacement for BIOS firmware used to load and run operating systems that’s been around since December 12, 2013. For many years, the only system you could buy with a free BIOS that could run free software was the Lemote Yeelong. Prior to that, every system ran nonfree BIOS system to initialize the computer prior to starting the operating system.

Unfree Software Everywhere

Unfree BIOS software is not a unique problem. Most elements of a computer are run using software that’s secret. For instance, none of the modems that are responsible for cell phone network communications run on free software. No one knows exactly what it does, except, perhaps, the people that created it.

Same is true of wifi. There are also only two wifi chips with free software drivers. The rest require blobs. Blobs are black boxes. You can know what goes in. You can know what comes out. But, you’re not entirely sure what happens in the middle.

Controller firmware, CPU microcode, graphic acceleration and many other elements of a modern computer system are almost always proprietary. Unfree software is the norm.

Free Software: Who Cares?

If it is a norm, why should anyone care about free software? People in the free software world often talk about free as in beer, i.e., it does not cost anything, opposed to free as in freedom, which enables people to do things they otherwise wouldn’t be able to do.

One example is a car. All modern cars have a series of electronic systems that control every facet of the car’s operation. When those electronic control systems are proprietary, it can mean that owners of the car can be compelled to see an auto mechanic rather than repair the car themselves. Or worse, a manufacturer could decide to not share information with auto mechanics and establish a system where car owners would have to go to a dealer to get their car repaired.

Proprietary software puts the owner of the software’s copyright in control. Free software, at minimum, reliquishes the copyright and gives that control over to the user of the software or the hardware it powers. In some cases, it tries to exert control over the process, making it a requirement that improvements also have to be shared under the same conditions that the original software was shared.

Free software is fundamentally about empowering people. You might not care about the code running your car, but you likely do care if that code limits the supplier of repair services to a monopoly that charges significantly more than it would if it had competition.

Enter libreboot

Looking over the libreboot site, it is clear the BIOS problem persists. There are a handful of systems that can run libreboot. Most computer systems run a lot of proprietary software, e.g., BIOS, device drivers – such as wifi, controller firmware, CPU microcode, graphics acceleration hardware, etc. Under these conditions, is it even possible to run free software? If there is going to be compromises, what is an acceptable level? How much inconvenience will it entail?

Freedom always comes at a cost. In the modern world, the cost is often in convenience or capability. But, the reality is that we often have no idea what something costs us, as individuals or as a society. It’s not until we struggle with a different, perhaps even radical position, that the standard quo has a foil to make these costs visible.

I found such a foil while looking at the libreboot site and read this quote in the documentation for the only ARM laptop compatible with libreboot, the ASUS C201:

In practise, you can (if you do without the video/wifi blobs, and replace ChromeOS with a distribution that respects your freedom) be more free when using [an ASUS C201 than other libreboot systems that are Intel based].

What does “more free” mean? On the ASUS C201, the embedded controller firmware is free software, and there is no microcode. On ARM CPUs, the instruction set is implemented in circuitry, without microcode. If you choose not to use the wifi/video blobs, you can make the system about as free as is possible in the modern computing landscape.

Getting There From Here

It’s a bit of work to make the ASUS C201 run with free software. I bought one with faulty wifi from eBay for $52 dollars and a wifi dongle with a free Artheros chipset for $31 from Think Penguin. I then got the low end iFixit tool set to take apart the laptop for $25, removed the write protection screw, installed libreboot, installed Arch Linux on a SDCard I bought for $20 and then converted Arch Linux into Parabola by switching the depositories. For ~$130, there was a lot of educational value in the exercise, and the end result was a usable laptop that is my daily driver. Not bad. But before you go off and try it yourself, let me share some of the bad news.

All the instructions mentioned the possibility of making the computer unusable or damaging it while installing libreboot. In my case, I did manage to put a small crack in the top of the laptop in the course of prying it open. I ended up covering it with a sticker. Problem solved.

It is also possible to make a mistake flashing the firmware with libreboot and “bricking” the machine, which is always a possiblity when flashing firmware. It didn’t take the first time for me, but it didn’t seem to cause any problems either.

There are also other issues that can come up. For example, if you are not familiar with the command line and mounting usb or sdcards, you might not know that you need to use a set of commands like the following to transfer the libreboot files from a usb drive to the C201 in the first place, which the instructions assume you know how to do and don’t specify:

# cd /
# mkdir libreboot
# mount /dev/sdb1 /libreboot
# cp /libreboot/libreboot.img /

You can also make mistakes when installing the operating system, such as missing part of the long command to partition the table properly. Assuming you can get the whole thing to boot, then you have to set-up the Arch Linux distribution from scratch.

Arch Linux starts with a minimal distribution, and it is built around the idea of you create the distribution you want, with only the most up-to-date software. Prior to this experiment, I used primarily Debian. Arch Limux showed me was how many decisions Debian was making for me during the installation process. You could say that Debian is more focused on stability and ease of use.

So, the initial process was reevaluating software. On Debian, Gnome is the default, but it will not run on an ASUS C201 because it doesn’t have the video acceleration required to run it well. I found myself trying a number of window managers and eventually settled on ratpoison, a tiled window manager, that would work well with the limitations that free software on the ASUS C201 required. Hot tip: “ctrl-t :” will bring a text box up in the corner, then you can type “quit”, without quotes to exit. It took me a bit to learn that detail.

The graphics limitations of the ASUS C201 tended to encourage the use of the command line, just as working with OpenBSD did. The command line is something every user of a UNIX derivative should know in some detail, including Macs.

Debian also does some of the basic set-up for you, such as creating users, installing base software like sudo, or getting wifi to work. Arch Linux largely doesn’t, although setting up wifi through wifi-menu was easy.

Then, there is switching your distribution from Arch, which allows some proprietary drivers, to Parabola, which doesn’t. This leads to additional issues, like an update of the machine made a fully-functional touchpad useless. Was it a software upgrade of X or a firmware upgrade to the touchpad driver? Probably the latter, but the end result is that I try to keep to the command line where using a mouse isn’t necessary.

Another thing cutting down on my use of graphics? Apparently, the icu package (International Components for Unicode) updates every 3 months, but it breaks iceweasel, the only free software graphical browser that will run javascript and render pages correctly. I’ve since learned how to downgrade packages from cached packages on the machine. However, in the process of learning, I cleared the cache. I ended up having to wait six weeks to get an unbroken graphic browser package. Part of the delay is because the dependencies in the browser are written for specific versions of icu, and so they break every time it is updated. Part is because the ARM architecture doesn’t get the same kind of support as other architectures, because the number of people using it is much smaller.

The Point

So, what’s the point of this long litany of issues with making an ASUS C201 a free software machine? I think the main value is the exercise of rejecting the default option and choosing for ourselves. That’s what free software offers. You may not want the freedom, but sometimes just making an effort in that direction helps us to evolve into people that appreciate options beyond those that are offered by default.

In this case, the default is to use ChromeOS. It provides a safe, relatively secure computing environment where people can browse the web, read email, use networked Google software applications and such, and the price for the machine is minimal. However, there is a price to be paid in freedom. Convenience is offered in exchange for agreeing to become the commerical product of Google. For some people, this doesn’t bother them. They might even view it as a benefit. Since Google knows so much about them, the advertising driven by Google might help them to make better purchasing decisions.

Trying to swim against the default stream, whether it is the defaults of Google or a particular Linux distribution such as Debian, means a lot of work. It also means inconvenience, where hardware doesnt work like it should or graphical browsers remain broken for months. But, I would argue that taking the risk of bringing your computer, accepting a restraint like “free software only”, having to try new alternatives, etc., all leads to a mindset worth cultivating.

Even if you think concerns about free software is a kind of zealotry, there are kinds of knowledge that only a zealot can know because they are willing to accept limits others will not. There’s an education to be obtained in doing it. The only question is whether it is worth it to you.

Installing LineageOS on a Samsung Device

LineageOS is an alternative operating system for your phone. It’s what Android looks like before the device manufacturers and phone carriers start adding software. Installing it is also an interesting exercise in how taking more control of technology often means taking more responsibility and risk.

Note: Installing alternative operating systems like LineageOS on your phone is a great way to learn more about how it works. You are going to make mistakes. You may brick your phone. If you are interested in attempting it, use an outdated phone you already have on the LineageOS list or get one from eBay to learn on. It’s okay to mess up, just don’t attempt it on a device that is important to you until you know what you are doing.

Installing LineageOS on your phone is relatively painless. The major difficulties are twofold: 1) being careful about installing the right files for your device and 2) getting Heimdall, the software on Linux to flash the bootloader TWRP to your phone, to work. Heimdall doesn’t work out of the box when installed with a package manager like apt-get on Debian.

Note: If you are on Windows, Odin sounds easier to use than Heimdall. I didn’t use it, so I do not know if this is true. I can say Heimdall does not work as expected on Linux.

  1. Download TWRP (most recent), LineageOS (nightly for the device) & OpenGAPPS (ARM, same version as LineageOS, pico) for your device and put them on the root directory of your phone’s sdcard. To transfer to your sdcard, enable developer mode for your device (in my case, going to Settings, About Device, and tapping on Build Number 7 times) then select USB Debugging in developer options. You will then be able to connect your phone to your computer, agree to connect on your phone and use any file utility to transfer the three files transfer rather than ADB, the android debug bridge. USB Debugging also needs to be enabled for the next step.
  2. Install Heimdall from source. There is a bug in the version v.1.4.1, which is what currently installs from apt-get. That version always throws off error messages when trying to flash the bootloader TWRP using software from apt-get. Try an apt-get install.
    $ sudo apt-get install heimdall-flash

    Then, check your version with:

    $ heimdall version 

    If you get v.1.4.1 (or if you cannot get Heimdall to work), try compiling from source.

    Compiling from source and using the heimdall-frontend solves that problem. I never got it to work from the command line. Install the required software to compile from source.

    $ sudo apt-get install build-essential cmake zlib1g-dev qt5-default libusb-1.0-0-dev libgl1-mesa-glx libgl1-mesa-dev 

    Make a bin directory in your home directory and enter it.

    $ mkdir bin
    $ cd bin

    Clone the source.

    $ git clone https://github.com/Benjamin-Dobell/Heimdall

    Make a build directory and enter it.

    $ mkdir -p Heimdall/build
    $ cd Heimdall/build

    Build the software from source.

    $ cmake -DCMAKE_BUILD_TYPE=Release ..
    $ make

    Transfer Heimdall to the system directory.

    $ sudo cp bin/* /usr/local/bin 
  3. Start the Heimdall-frontend.
    $ heimdall-frontend

    Turn off your device. Boot into download mode, on my device (SAMSUNG) download mode was started by holding down Volume Down, Home and Power. Then connect to your computer using the USB cable.

    1. Go to Utilities tab in the Heimdall frontend.
    2. Detect Device.
    3. You will see Download PIT, which stands for Partitions Information Tables. Go Save As and save it on some location.
    4. Go to Flash tab.
    5. In PIT category, click Browse and select PIT file you downloaded from device in step 3.
    6. Click Add button.
    7. For partition name select where you want to flash it. BE CAREFUL! If you flash it on wrong partition you can perma-brick device. For most devices, the recovery partition is RECOVERY.
    8. Go Browse for file and select twrp.img file you downloaded in step 1. In Session, check No Reboot.
    9. Click Start.
    10. When complete, disconnect device from the USB cable, pull the battery and immediately restart into recovery. On my device, you can boot into recovery by holding down Volume Up, Home and Power. If you don’t, your phone will likely write over the TWRP file you have flashed, and it will look like nothing has happened.
  4. From here, it was straight-forward per the instructions on the LineageOS Installation Instructions for my device.
    1. Backup your device, so you can recover in the event you bork it.
    2. Wipe the Cache, System and Data partitions.
    3. Install LineageOS.zip first, then OpenGAPPS.zip (optional, but if OpenGAPPS is not there a lot of apps might not work as expected, or at all) second.

When done, TWRP will ask you to reboot. That’s it.

Good luck!

Freedom vs. Sovereignty

“The reward for accepting unpredictability is meaning. Unlike the abyss faced by makers, the plurality of other humans who are the object of action don’t just stare back. Sometimes they accept your invitation to play on; they join you in continuing the game. To act, in the Arendt sense, is to issue a call to play an infinite game in the James Carse sense (Carsean finite games, obviously, map to maker-theaters).

The reward for dealing with others through promises and forgiveness, rather than fuck-yous, is freedom, a richer mode of being than sovereignty.”

—Venkatesh Rao, “How To Make History.” Ribbonfarm.com. September 14, 2017.

There seems to be an interesting overlap going on here where the element of surprise is the hallmark of agency and freedom, and Baggini’s bringing in the same when talking about truth.