Comments in the moderation queue: 0

Recent comments on posts in the blog:

Not always winbound chip


I used this instructions before and they really helped me in the past. Now I bought another x220 and wanted to do the same and was quite confused, that I couldn’t find the winbound chip anymore. I did the trick with spispeed=512 and expected to get it. Instead I needed to use the Macronix Chip with the flag ‘-c MX25L6405’ as flashrom suggest, but needed a long time to get that.

So someone in the future: don’t get confused, not every x220 has a winbound chip, just proceed ;-)


Comment by techge
Re: Thanks!
Ok. Got it. They are counting 3 trips for 98KB size ATF content because TCP after initial packets of 14kb, TCP doubles the packet size in each connection to 28 KB, and then 56 KB (TCP packet size keeps on increasing until there is data loss). So in three roundtrips, you can get 14 kb + 28 kb + 56 kb = 98 KB of content!
Comment by Pratyush
Hey great article. Thanks for posting. The source article also mentions that “Ideally, the ATF content should fit under 98KB - this allows the browser to paint the page after just three roundtrips to have plenty time budget for server response latency and client rendering.”. Can you explain how do they arrive at the number of 98kb?
Comment by Pratyush
thanks elvirolo

elvirolo – thank you for all the resources! Very cool!

I definitely used me_cleaner on my machine as well following a guide on the hardened gnu/linux site.

Comment by elvirolo — Tue 2018-01-09 02:18:38 PM

flashrom -p internal:laptop=force_I_want_a_brick -c MX25L6445E -w coreboot_mecleaned.rom

that command :)

Comment by thcipriani

I was able to flash the new ROM internally (with a neutered ME - see this guide) by running the following command on the laptop:

flashrom -p internal:laptop=force_I_want_a_brick -c MX25L6445E -w coreboot_mecleaned.rom

Of course, you need to recompile coreboot first. But it does work :)

Comment by elvirolo
SPI flashing using an Olimex Olinuxino Lime2 board


Thanks a lot for your guide, which has helped me tremendously. I’d like to add a few instructions here for people wanting to flash their BIOS chip with an Olimex Olinuxino Lime2 board. It took me several days to figure out how to do it, so I thought it might be helpful to include a brief summary of the required steps here.

  1. Flash the latest version of Armbian (Debian) Stretch for the Lime2 board onto an SD card. It should also work with Olimex’s official image, but I couldn’t get it to work. If you do use the Olimex image, which includes a 3.xx kernel, please refer to this page. Since it didn’t work with me, I won’t be telling you how to do it here, but feel free to send me an email if you think I can help.

  2. Before booting the board, you should wire it up to the BIOS chip. Because the pin spacing (pitch) on the Lime 2 is smaller (0.05“) than that of the Raspberry Pi (0.1”), the easiest way to do it is to get this adapter as well as this ribbon cable from Olimex.

Plug one end of the ribbon cable to the GPIO2 port on the board, and the other end on the adapter. Make sure to plug it in the right way (use the pin numbers that are printed on the board as a helper). Connect the jumper wires to the Pomona clip as described in Tyler’s guide. The pins you should use on the adapter are the following: GND: pin 2, VCC (3.3V): pin 3, CS(0): pin 29, CLK: pin 31, MOSI: pin 33, MISO: pin 35.

  1. Boot your lime2 board, find its IP, and SSH into in (ssh root@ip). The default password is 1234. You will be prompted to change it when you log in.

Add the following lines in /boot/armbianEnv.txt:

overlays=spi0 spi-spidev


Reboot. /dev/spidev0.0 should have appeared!

Note: I couldn’t get my board to power the chip, for some reason. I thus removed the VCC cable, and instead enabled Wake On Lan in the BIOS, switched the laptop off, removed the battery, plugged in the AC adapter and an Ethernet cable. The chip then gets powered and the flashing process works. I read that one cannot use me_cleaner if the chip is powered that way. I haven’t tried yet, so I can’t confirm that. I’d be grateful if someone who knows more about this would let me know.

PS: I found a script that automates much of the process. I haven’t tried it, but it looks very helpful!

Comment by elvirolo
Alternative way for Git to support color schemes

You can simply pass ANSI color code indices as the color arguments. These indices are to a color palette which is very easily changed from within the settings of your terminal or terminal emulator (effectively giving all color-aware console applications support for psuedocolors). Here is a post with more information on Git 256 color support. For examples of how to do this on various Windows terminals see this stackoverflow post, though it is also possible on Linux and Mac OSX or really any platform with an even remotely modern terminal. This method is superior in ease-of-use as well as portability. View this Imgur gallery for several pictures of various color schemes being dynamically changed within my terminal.

It is important to point out that ANSI color code indices are laid out in a specific way such that certain indices usually correspond to certain usages or hues. This means that, for example, using the color index of 0 is usually the “default background color” of any given theme. Here is a resource which explains the ANSI 256 colors mode escape sequences (note that we are only providing the palette index to Git and don’t need to worry about directly writing an ANSI escape sequence!)

Here is the Git configuration I am using to generate these indexed color codes within diffs:

branch = auto
decorate = auto
diff = auto
grep = auto
interactive = auto
pager = true
showbranch = auto
status = auto
ui = auto

#color slot= [attributes] foreground [background]
#color = 0 - 256 (ANSI); #000000 (24bit Hex); black, red, green, yellow, blue, magenta, cyan, white (ANSI color words); normal (custom Git Color?)
#attributes: bold dim italic ul blink reverse strike

[color "status"]
header = 8
added = 10
changed = 12
untracked = 14
branch = 0 9
nobranch = bold ul blink 12

[color "diff"]
meta = 3
func = 13
frag = 11
context = 8
old = 12 1
new = 10 3

Note: I “translated” the posted Tomorrow Night Eighties color theme file from the original post into this format as closely as possible without making changes to my terminals built-in color themes. As a result several of the hex code colors have been modified to a closely matching color code index for my terminal’s version of the 16 colors for the Tomorrow Night Eighties theme.

Comment by Emily
Understanding DAGs
I arrived at your blog post from the need to piece together the knowledge required to work with IPFS and MultiChain. A good look into the complexities of Git. Thank you!
Comment by kosson

ISPs want Netflix to pay more than Google for them to move 100 bytes from the internet backbone to your houuse <—

btw good choice on the domain forward from aha

Comment by nickisghosty
Auto-repeat as context menu

Here’s my two cents:

Auto-repeat is silly. Why do you ever need to retype the same letter over and over again? Perhaps a dash for an ASCII line to create a visual bar. Auto-repeating is silly.

I’d like all the variants of a letter to appear in a context menu when you hold down a relevant letter. Holding down the dollar symbol? Maybe the euro, pound, etc symbols appear. Holding down the e, all the variations of éêë appear.

I think this is a more human approach. I doesn’t require learning, or memorization in the same way that every other method I’ve seen requires. It’s already been shown to us by smartphones etc.



Comment by mrashley