Update all content; add categories and move Tech, Games, Music to category taxonomy; add location taxonomy
This commit is contained in:
parent
413a49067a
commit
ba73889720
11 changed files with 56 additions and 26 deletions
|
@ -3,26 +3,30 @@ title: "Booting a Raspberry Pi Over TFTP"
|
|||
date: 2020-10-13T08:31:52-07:00
|
||||
draft: false
|
||||
series: ["Raspberry Pi OS Development"]
|
||||
tags: ["Tech"]
|
||||
categories: ["Tech"]
|
||||
tags: ["Raspberry Pi", "Networking"]
|
||||
---
|
||||
|
||||
In order to do this, I modified the [EEPROM bootloader][eeprom] bootloader
|
||||
according to the instructions in the Raspberry Pi documentation. That page is
|
||||
also on [GitHub][eeprom-gh] which might be a more stable location. On Raspbian
|
||||
on the RPi:
|
||||
on the Raspberry Pi:
|
||||
|
||||
{{< figures/code lang=sh >}}
|
||||
{{< figures/code >}}
|
||||
```sh
|
||||
fw=/lib/firmware/raspberrypi/bootloader/stable/pieeprom-2020-09-03.bin
|
||||
rpi-eeprom-config $fw > ~/bootconf.txt
|
||||
vi ~/bootconf.txt
|
||||
rpi-eeprom-config --out ~/pieeprom-new.bin --config ~/bootconf.txt $fw
|
||||
sudo rpi-eeprom-update -d -f ~/pieeprom-new.bin
|
||||
sudo reboot
|
||||
```
|
||||
{{< /figures/code >}}
|
||||
|
||||
My updated bootconf.txt is:
|
||||
My updated `bootconf.txt` is:
|
||||
|
||||
{{< figures/code lang=cfg >}}
|
||||
{{< figures/code >}}
|
||||
```cfg
|
||||
[all]
|
||||
BOOT_UART=1
|
||||
WAKE_ON_GPIO=0
|
||||
|
@ -33,6 +37,7 @@ TFTP_FILE_TIMEOUT=30000
|
|||
ENABLE_SELF_UPDATE=1
|
||||
DISABLE_HDMI=0
|
||||
BOOT_ORDER=0xf412
|
||||
```
|
||||
{{< /figures/code >}}
|
||||
|
||||
I enabled UART debugging, and set the boot order to be: network `0x2`, SD card
|
||||
|
@ -41,45 +46,51 @@ repeated if the bootloader is updated via apt.
|
|||
|
||||
I [enabled the TFTP server][mac-tftp] on my Mac:
|
||||
|
||||
{{< figures/code lang=sh >}}
|
||||
{{< figures/code >}}
|
||||
```sh
|
||||
sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist
|
||||
sudo launchctl enable System/com.apple.tftpd
|
||||
sudo launchctl start com.apple.tftpd
|
||||
```
|
||||
{{< /figures/code >}}
|
||||
|
||||
I’m not sure if the `enable` command is actually necessary. This doesn't
|
||||
actually start the `tftpd` daemon. Instead, macOS starts the daemon on demand
|
||||
when it notices an incoming tftp request on the network. Don't be alarmed!
|
||||
|
||||
The tftp server looks for files to serve out of **/private/tftpboot**, and those
|
||||
The tftp server looks for files to serve out of **`/private/tftpboot`**, and those
|
||||
things need to be world `rwx`, i.e. `777`. By default (this is configurable) the
|
||||
RPi queries for a directory named by its serial number.
|
||||
Raspberry Pi queries for a directory named by its serial number.
|
||||
|
||||
{{< figures/code lang=sh >}}
|
||||
{{< figures/code >}}
|
||||
```sh
|
||||
mkdir /private/tftpboot/$raspberry_pi_serial
|
||||
chmod 777 /private/tftpboot
|
||||
chmod -R 777 /private/tftpboot/*
|
||||
```
|
||||
{{< /figures/code >}}
|
||||
|
||||
RPi looks for files of various names in that directory, one in particular by the
|
||||
name of **start.elf**.
|
||||
Raspberry Pi looks for files of various names in that directory, one in
|
||||
particular by the name of **`start.elf`**.
|
||||
|
||||
Next, I had to update my Ubiquiti router's DHCP server configuration (on the
|
||||
command line) to pass a `tftp-server` parameter in the DHCP payload. This step
|
||||
may be optional because you can also set `TFTP_IP` in the **bootconf.txt** above
|
||||
may be optional because you can also set `TFTP_IP` in the **`bootconf.txt`** above
|
||||
to specify the IP directly. On my router:
|
||||
|
||||
{{< figures/code lang=sh >}}
|
||||
{{< figures/code >}}
|
||||
```sh
|
||||
configure
|
||||
set service dhcp-server shared-network-name LAN subnet $lan_cidr_subnet tftp-server-name $ip_of_mac
|
||||
commit
|
||||
save
|
||||
exit
|
||||
```
|
||||
{{< /figures/code >}}
|
||||
|
||||
I also gave my Mac a static IP, and renewed the DHCP lease so it took the new IP
|
||||
to make the whole process a little more smooth. Now, it appears the RPi will
|
||||
attempt a TFTP boot, and I see queries in the logs on my Mac.
|
||||
to make the whole process a little more smooth. Now, it appears the Raspberry
|
||||
Pi will attempt a TFTP boot, and I see queries in the logs on my Mac.
|
||||
|
||||
## Further Reading
|
||||
|
||||
|
|
|
@ -11,7 +11,9 @@ resources:
|
|||
- name: "ramen"
|
||||
src: "images/ramen.jpg"
|
||||
title: "A bowl of ramen from Marufuku"
|
||||
tags: ["Travel"]
|
||||
categories: ["Travel"]
|
||||
locations: ["San Francisco", "California", "United States"]
|
||||
tags: ["Staycation", "Food"]
|
||||
---
|
||||
|
||||
{{< figures/image name=buchanan >}}
|
||||
|
|
|
@ -3,7 +3,8 @@ title: "Oskitone Scout"
|
|||
date: 2021-09-11T16:47:07-07:00
|
||||
description: A timelapse video of me building an Oskitone Scout set to music produced using the Scout itself.
|
||||
draft: false
|
||||
tags: ["Music", "Synthesizers", "DIY"]
|
||||
categories: ["Music"]
|
||||
tags: ["Synthesizers", "Electronics", "DIY", "Compositions"]
|
||||
---
|
||||
|
||||
{{< figures/youtube id="gCSwWsxzy_c" title="A timelapse video of me building an Oskitone Scout, set to music produced using the Scout itself">}}
|
||||
|
|
|
@ -7,7 +7,16 @@ resources:
|
|||
- name: friends
|
||||
src: "friends.jpg"
|
||||
title: ""
|
||||
tags: ["Travel", "Pandemic", "Friends"]
|
||||
categories: ["Travel"]
|
||||
locations:
|
||||
- "Portland, OR"
|
||||
- "Oregon"
|
||||
- "Olympic Peninsula"
|
||||
- "Seattle, WA"
|
||||
- "Washington"
|
||||
- "Pacific Northwest"
|
||||
- "United States"
|
||||
tags: ["Pandemic", "Friends"]
|
||||
---
|
||||
|
||||
{{< figures/image name=friends >}}
|
||||
|
@ -32,4 +41,4 @@ I'm so grateful for every one of these people. We've been friends for years and
|
|||
even though our lives have taken us in so many different directions, we've found
|
||||
each other again and that is so wonderful.
|
||||
|
||||
{{< twitter 1447951049076056071 >}}
|
||||
{{< twitter erynofwales 1447951049076056071 >}}
|
||||
|
|
|
@ -3,7 +3,8 @@ title: "Colorado Modular Synth Society Three Module Challenge"
|
|||
date: 2022-01-23T09:21:35-07:00
|
||||
description: In which I submit a video of me playing a small Eurorack system to CMSS
|
||||
draft: false
|
||||
tags: ["Music", "Eurorack", "Synthesizers", "Recordings", "Performances"]
|
||||
categories: ["Music"]
|
||||
tags: ["Eurorack", "Synthesizers", "Recordings", "Performances", "Compositions"]
|
||||
---
|
||||
|
||||
{{< figures/youtube id="sqr7g4P85aM" title="A top-down video of me operating a small Eurorack system made of only three modules. Lights flash, an incorporeal hand turns knobs to sculpt the sound." >}}
|
||||
|
|
|
@ -3,7 +3,8 @@ title: "Profiling ZSH"
|
|||
date: 2022-01-23T11:35:38-08:00
|
||||
description: In which I learn about how to profile my ZSH init files.
|
||||
draft: false
|
||||
tags: ["Tech", "ZSH"]
|
||||
categories: ["Tech"]
|
||||
tags: ["ZSH", "Dotfiles"]
|
||||
---
|
||||
|
||||
I've been hacking on my [dotfiles][dotfiles] a lot lately. One of the things
|
||||
|
@ -13,9 +14,11 @@ undertook the same project.
|
|||
|
||||
TIL, ZSH has a profiler built in. You can start it by calling the following.
|
||||
|
||||
{{< figures/code >}}
|
||||
```zsh
|
||||
zmodload zsh/zprof
|
||||
```
|
||||
{{< /figures/code >}}
|
||||
|
||||
Then, once you're done, you call `zprof` to get a report that tells you where
|
||||
ZSH is spending most of its time. I put the line above at the top of my
|
||||
|
|
|
@ -3,7 +3,8 @@ title: Oh Dear, She Got Hooked on Nethack Again
|
|||
date: 2022-04-24T17:36:33-07:00
|
||||
description: In which I get hooked on that one roguelike (God help me)
|
||||
draft: false
|
||||
tags: ["Nethack", "Video Games", "Roguelikes"]
|
||||
categories: ["Games"]
|
||||
tags: ["Nethack", "Roguelikes"]
|
||||
---
|
||||
|
||||
A couple weeks ago, I connected to my VPS to check on something. There's [a
|
||||
|
|
|
@ -12,6 +12,7 @@ resources:
|
|||
- name: dcss
|
||||
src: "dcss.png"
|
||||
title: ""
|
||||
categories: ["Games"]
|
||||
tags: ["Roguelikes", "Video Games"]
|
||||
---
|
||||
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
title: "Making an Audio Scope with P5.js"
|
||||
date: 2022-08-18T20:48:37-07:00
|
||||
draft: false
|
||||
tags: ["P5.js", "Programming", "Tech", "Web"]
|
||||
categories: ["Tech"]
|
||||
tags: ["P5.js", "Programming", "Web", "Art"]
|
||||
resources:
|
||||
- src: sketch.js
|
||||
params:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue