Added some more content
|
@ -342,6 +342,8 @@ data: {
|
|||
|
||||
{{< icon "github" >}}
|
||||
|
||||
Here is a list of all Hugo Congo supported icon codes: https://jpanther.github.io/congo/samples/icons/
|
||||
|
||||
|
||||
## KaTex / LaTex
|
||||
Inline:
|
Before Width: | Height: | Size: 770 B After Width: | Height: | Size: 770 B |
37
content/personal-blog/our-helpers/index.md
Normal file
|
@ -0,0 +1,37 @@
|
|||
+++
|
||||
title = 'Our Helpers'
|
||||
description = 'A poem about AI'
|
||||
date = 2025-06-18T23:21:00-05:00
|
||||
draft = false
|
||||
categories = ['thoughts']
|
||||
tags = ['poetry', 'AI']
|
||||
disableToc = true
|
||||
+++
|
||||
|
||||
## A short poem about AI<br>Let us hope it is not an accurate prediction
|
||||
<!--more-->
|
||||
|
||||
While it is about AI, this poem was of course not written by / with AI.
|
||||
|
||||
{{< lead >}}
|
||||
Our Helpers
|
||||
{{< /lead >}}
|
||||
The farmer's son, who was taught to read the sky\
|
||||
Now asks his phone when to plant his corn.\
|
||||
The doctor, to her ancient oath still sworn,\
|
||||
Relies on models and ignores her eye.
|
||||
|
||||
We built these thinking things to ease our days,\
|
||||
Fed them our writings, our choices, our fears.\
|
||||
They learned not only our ideas through the years,\
|
||||
But were also instilled with our biases and ways.
|
||||
|
||||
By the time we thought to shut them down,\
|
||||
We discovered what we'd truly made,\
|
||||
Both less and more than a thoughtful aid.\
|
||||
Now we lay forgotten, devoid of renown.
|
||||
|
||||
The world won't end in ice or flame,\
|
||||
No final thunder, no dramatic close.\
|
||||
Just the slow fade of every human name,\
|
||||
Beneath the hum of what once we chose.
|
After Width: | Height: | Size: 83 KiB |
After Width: | Height: | Size: 30 KiB |
BIN
content/personal-blog/our-helpers/poetry-written-by-a-robot.jpg
Normal file
After Width: | Height: | Size: 44 KiB |
57
content/personal-blog/toc-disable-example/index.md
Normal file
|
@ -0,0 +1,57 @@
|
|||
---
|
||||
title: "TOC Disable Example"
|
||||
description: "Example showing how to disable the table of contents in markdown files"
|
||||
date: 2025-01-27
|
||||
draft: false
|
||||
categories: ['examples']
|
||||
tags: ['toc', 'markdown', 'hugo']
|
||||
disableToc: true # This disables the table of contents for this page
|
||||
---
|
||||
|
||||
{{< lead >}}
|
||||
This page demonstrates how to disable the table of contents in markdown files.
|
||||
{{< /lead >}}
|
||||
|
||||
## How to Disable TOC
|
||||
|
||||
To disable the table of contents in any markdown file (including `index.md` files), simply add the `disableToc: true` parameter to the front matter:
|
||||
|
||||
```yaml
|
||||
---
|
||||
title: "Your Page Title"
|
||||
description: "Your page description"
|
||||
disableToc: true # This disables the TOC
|
||||
---
|
||||
```
|
||||
|
||||
## Usage Examples
|
||||
|
||||
### For Individual Pages
|
||||
Add `disableToc: true` to the front matter of any markdown file to disable the TOC for that specific page.
|
||||
|
||||
### For Index Pages
|
||||
For `index.md` files that serve as list pages, you can also use the `cascade` parameter to apply the setting to all pages in that section:
|
||||
|
||||
```yaml
|
||||
---
|
||||
title: "Section Title"
|
||||
cascade:
|
||||
disableToc: true # Disables TOC for all pages in this section
|
||||
---
|
||||
```
|
||||
|
||||
## How It Works
|
||||
|
||||
When `disableToc: true` is set:
|
||||
|
||||
1. The table of contents will not be displayed on the page
|
||||
2. The TOC JavaScript will not be loaded (improving performance)
|
||||
3. The TOC highlighting functionality will be disabled
|
||||
|
||||
## Note
|
||||
|
||||
This feature works for both:
|
||||
- Individual article pages (using the `single.html` template)
|
||||
- List/index pages (using the `list.html` template)
|
||||
|
||||
The TOC will still be generated by Hugo, but it won't be displayed or have JavaScript functionality when disabled.
|
After Width: | Height: | Size: 146 KiB |
BIN
content/personal-blog/updating-lsi-hba-truenas-scale/feature.jpg
Normal file
After Width: | Height: | Size: 412 KiB |
109
content/personal-blog/updating-lsi-hba-truenas-scale/index.md
Normal file
|
@ -0,0 +1,109 @@
|
|||
+++
|
||||
title = 'Updating LSI HBA on TrueNAS Scale'
|
||||
description = 'Navigating Broadcom and LSI HBA updates on TrueNAS Scale'
|
||||
date = 2025-05-29T07:11:45-05:00
|
||||
draft = false
|
||||
categories = ['references']
|
||||
tags = ['LSI', 'TrueNAS Scale', 'Broadcom', 'Update', 'SAS3Flash', 'HBA']
|
||||
+++
|
||||
|
||||
Navigating Broadcom and LSI HBA updates on TrueNAS Scale.
|
||||
<!--more-->
|
||||
|
||||
{{< lead >}}
|
||||
Navigating Broadcom and LSI HBA updates on TrueNAS Scale.
|
||||
{{< /lead >}}
|
||||
|
||||
All of the references I was able to find for updating LSI firmware was outdated, and since this took me longer than I would like, I thought I would share my experience as a guide to others.
|
||||
|
||||
# Find your hardware information:
|
||||
```bash
|
||||
lspci -vvv | grep -A 20 -B 5 "LSI\|Broadcom"
|
||||
```
|
||||
|
||||
```
|
||||
65:00.0 Serial Attached SCSI controller: Broadcom / LSI SAS3224 PCI-Express Fusion-MPT SAS-3 (rev 01)
|
||||
Subsystem: Broadcom / LSI SAS9305-16i
|
||||
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx+
|
||||
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
|
||||
Latency: 0, Cache Line Size: 32 bytes
|
||||
Interrupt: pin A routed to IRQ 73
|
||||
NUMA node: 0
|
||||
IOMMU group: 4
|
||||
Region 0: I/O ports at b000 [size=256]
|
||||
Region 1: Memory at e0e00000 (64-bit, non-prefetchable) [size=64K]
|
||||
Expansion ROM at e0d00000 [disabled] [size=1M]
|
||||
Capabilities: [50] Power Management version 3
|
||||
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
|
||||
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
|
||||
Capabilities: [68] Express (v2) Endpoint, MSI 00
|
||||
DevCap: MaxPayload 4096 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
|
||||
ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0W
|
||||
DevCtl: CorrErr- NonFatalErr- FatalErr+ UnsupReq-
|
||||
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ FLReset-
|
||||
MaxPayload 256 bytes, MaxReadReq 512 bytes
|
||||
DevSta: CorrErr+ NonFatalErr- FatalErr- UnsupReq+ AuxPwr- TransPend-
|
||||
LnkCap: Port #0, Speed 8GT/s, Width x8, ASPM not supported
|
||||
```
|
||||
|
||||
If we look under Subsystem, we can see the model number of the HBA, in my case: `LSI SAS9305-16i`. If you have multiple HBAs, they should all be listed in similar entries.
|
||||
|
||||
Now we can find out what firmware version we are currently running by using the `sas3flash` command.
|
||||
```bash
|
||||
sas3flash -listall
|
||||
```
|
||||
Avago Technologies SAS3 Flash Utility
|
||||
Version 16.00.00.00 (2017.05.02)
|
||||
Copyright 2008-2017 Avago Technologies. All rights reserved.
|
||||
|
||||
Adapter Selected is a Avago SAS: SAS3224(A1)
|
||||
|
||||
Num Ctlr FW Ver NVDATA x86-BIOS PCI Addr
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
0 SAS3224(A1) 16.00.01.00 10.00.00.05 08.27.00.00 00:17:00:00
|
||||
1 SAS3224(A1) 16.00.01.00 10.00.00.05 08.27.00.00 00:65:00:00
|
||||
|
||||
Finished Processing Commands Successfully.
|
||||
Exiting SAS3Flash.
|
||||
```
|
||||
|
||||
# Download the firmware:
|
||||
Navigate to the [Broadcom website](https://www.broadcom.com/support/download-search?pg=&pf=Host+Bus+Adapters&pn=&pa=Firmware&po=&dk=&pl=&l=false) and search for your HBA model number. Broadcom does not make it easy to get direct links to the downloads, so hit F12 in your browser, and go to the `Network` tab. When you click on the download link you will see a GET request, copy the URL. In my case, the URL is: https://docs.broadcom.com/docs-and-downloads/host-bus-adapters/host-bus-adapters-common-files/sas_sata_12g_p16.12_cutlass_point_release/9305_16i_Pkg_P16.12_IT_FW_BIOS_for_MSDOS_Windows.zip
|
||||
|
||||
Now in our TrueNAS Scale shell, we can download the firmware using wget.
|
||||
```bash
|
||||
wget https://docs.broadcom.com/docs-and-downloads/host-bus-adapters/host-bus-adapters-common-files/sas_sata_12g_p16.12_cutlass_point_release/9305_16i_Pkg_P16.12_IT_FW_BIOS_for_MSDOS_Windows.zip
|
||||
|
||||
unzip 9305_16i_Pkg_P16.12_IT_FW_BIOS_for_MSDOS_Windows.zip
|
||||
|
||||
cd 9305_16i_Pkg_P16.12_IT_FW_BIOS_for_MSDOS_Windows
|
||||
cd Firmware
|
||||
cd SAS9305_16i_IT_P
|
||||
```
|
||||
|
||||
# Backup the current firmware:
|
||||
For each HBA, we should backup our current firmware in case something goes wrong.
|
||||
|
||||
```bash
|
||||
sas3flash -c 0 -ufirmware backup_card0_fw.bin
|
||||
sas3flash -c 1 -ufirmware backup_card1_fw.bin
|
||||
```
|
||||
|
||||
# Update the firmware:
|
||||
{{< alert >}}
|
||||
**Warning!** I was able to update my firmware on a live system with no restart or issues, but this may not be the case for you. It is a good idea to make sure that your arrays are not in use, and that you have good backups before proceeding.
|
||||
{{< /alert >}}
|
||||
|
||||
Lets flash the firmware!
|
||||
|
||||
```bash
|
||||
sas3flash -c 0 -f SAS9305_16i_IT_P.bin
|
||||
sas3flash -c 1 -f SAS9305_16i_IT_P.bin
|
||||
```
|
||||
|
||||
# Clean up
|
||||
|
||||
We are all done!
|
||||
|
||||
Once you have verified that things are working the way you want them to, you can remove the firmware download and the backup files.
|
|
@ -1,5 +1,5 @@
|
|||
+++
|
||||
title = 'Machine Learning for Magnetic Target Detection'
|
||||
title = 'Three Methods for Magnetic Target Simulation'
|
||||
description = 'Using machine learning to detect and localize magnetic targets underwater'
|
||||
date = 2025-04-03T16:00:00-05:00
|
||||
draft = false
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
+++
|
||||
title = 'Three Methods for Magnetic Modeling'
|
||||
title = 'Potential Fields Modeling for ML Target Detection'
|
||||
description = 'Modeling magnetic targets to support machine learning applications in maritime environments'
|
||||
date = 2025-03-31T16:00:00-05:00
|
||||
draft = false
|
||||
|
|