---
title: "A 2004 iBook G4 Finally Talks To Your Modern NAS"
locale: "en"
url: "https://irz.fr/en/articles/aqualink-smb3-powerpc-en"
markdown_url: "https://irz.fr/en/articles/aqualink-smb3-powerpc-en.md"
category: "tech"
tags: ["PowerPC", "SMB3", "NAS", "retrocomputing", "open source", "AquaLink"]
published_at: "2026-08-26T13:40:00.000Z"
author: "Camille Morel"
translation: "https://irz.fr/fr/articles/aqualink-smb3-powerpc-fr.md"
---

# A 2004 iBook G4 Finally Talks To Your Modern NAS

AquaLink connects a Tiger-era iBook G4 to a modern SMB3 NAS through libsmb2 and a tiny local WebDAV server. What matters is the method: wiring an abandoned machine back in, kernel untouched.

On an iBook G4 running Mac OS X 10.4.11, a network volume just mounted in the Finder. Desktop icon, drag-and-drop, eject. Nothing remarkable on the surface except one detail: the share lives on a recent NAS that only speaks SMB2/SMB3, and no PowerPC Mac has ever been able to do that with its built-in tools. Apple's own SMB driver stayed stuck on SMB1, the protocol everyone has spent years switching off.[1](https://github.com/watermark-hd/ppc-mac-modernization)[3](https://oldmac.policy-log.jp/en/apps/aqualink/)

That is exactly the gap AquaLink fills. It is a small Cocoa application by watermark_hd, a developer who describes the work as a personal, non-commercial contribution to the PowerPC community.[1](https://github.com/watermark-hd/ppc-mac-modernization) As far as the author knows, it is the first working SMB2/3 client ever run on PowerPC Mac OS X.[1](https://github.com/watermark-hd/ppc-mac-modernization) Hackaday picked up the story in late August 2026.[4](https://hackaday.com/2026/08/25/native-smb3-client-brings-modern-nas-access-to-20-year-old-powerpc-macs/)

The software itself stays modest: roughly thirty downloads at the time of writing, one publicly verified hardware setup, a 35-commit repository whose first commit dates to August 9.[1](https://github.com/watermark-hd/ppc-mac-modernization)[3](https://oldmac.policy-log.jp/en/apps/aqualink/) What deserves a closer look is how the problem was attacked, and the build journal the author took the trouble to write.[2](https://github.com/watermark-hd/ppc-mac-modernization/blob/main/smb3/README.md)

## The SMB1 wall

An old machine does not lose the network because it breaks. It loses the network because the network moves around it.

Apple shipped Samba, the open source SMB implementation, inside Mac OS X from version 10.2 onward so Macs could share files with Windows PCs.[6](https://appleinsider.com/articles/13/06/11/apple-shifts-from-afp-file-sharing-to-smb2-in-os-x-109-mavericks) Leopard, the last release compatible with PowerPC processors, still ran on that stack, which stops at SMB1/CIFS. When Apple replaced Samba with its own SMBX implementation in Lion, then made SMB2 the default sharing protocol in Mavericks, the PowerPC branch had been dead for years.[6](https://appleinsider.com/articles/13/06/11/apple-shifts-from-afp-file-sharing-to-smb2-in-os-x-109-mavericks)

The world outside raised its floor. SMB3, introduced with Windows Server 2012, brought transport encryption among other things; NAS vendors expose the minimum protocol version as an explicit setting,[8](https://www.synology.com/en-us/dsm/7.4/software_spec/dsm) and SMB1 carries a long exploitation history behind it, missing message integrity among other things.[10](https://dev.to/mitakadigital/smb-is-mandatory-now-what-macos-dropping-the-afp-client-means-for-storage-engineers-46p0) 2026 adds another layer: macOS 27 removes the AFP client outright, Apple's own legacy file-sharing protocol, closing even the Mac-to-Mac path between old and new machines.[7](https://eclecticlight.co/2026/04/23/networking-changes-coming-in-macos-27/)

> PROTOCOLS
> **The network moved on**
> - Apple ships Samba (SMB1) inside OS X 10.2: 2002
> - Lion replaces Samba with its own SMBX stack: 2011
> - Mavericks makes SMB2 the default sharing protocol: 2013
> - macOS 27 removes the AFP client from the Mac: 2026
> Sources: AppleInsider, The Eclectic Light Company.

So an iBook G4 boots perfectly fine, HFS+ included, yet its owner ends up copying files over USB sticks or improvised FTP because the NAS share simply will not mount. That daily reality is what AquaLink goes after.

## gcc 4.0 vs SMB3

The author did not hand-write an SMB3 stack. He started from libsmb2, a C userspace library maintained by Ronnie Sahlberg under LGPL 2.1, able to speak SMB2 and SMB3 and already ported to improbable platforms, including several PowerPC machines like the PlayStation 3 and the Wii.[5](https://github.com/sahlberg/libsmb2) According to the repository, it is pretty much the only SMB2/3 client library that still builds against a toolchain this old.[1](https://github.com/watermark-hd/ppc-mac-modernization)

Building still hurt. The build journal describes three precise obstacles.[2](https://github.com/watermark-hd/ppc-mac-modernization/blob/main/smb3/README.md) Tiger's SDK contains no CommonCrypto framework, so libsmb2's automatic detection assumes it can use it on Apple platforms and picks an AES code path that does not exist there: `configure.ac` needs a patch to test for the header explicitly. The era's gcc 4.0 flags far more shadowed declarations than modern compilers, turning `-Werror` into a wall, so warnings stay warnings. And Kerberos support has nothing to link against since Tiger ships neither `GSS.framework` nor `krb5.h`, so the build falls back to the library's built-in NTLMSSP authentication, judged plenty for a home NAS.

The result is verified on real hardware, not in an emulator: `smb2-ls` lists a modern host Mac's share while forcing `?vers=3`, Japanese filenames intact.[2](https://github.com/watermark-hd/ppc-mac-modernization/blob/main/smb3/README.md) The final application links libsmb2 statically, builds its whole interface in code without a nib file, and ships as a zip you unpack straight onto the iBook.[1](https://github.com/watermark-hd/ppc-mac-modernization)[3](https://oldmac.policy-log.jp/en/apps/aqualink/)

## The loopback bridge

Then came the experience problem. libsmb2 gives programmatic access to files, but nothing appears in the Finder, and the Finder is what a Mac user actually wants.

The normal route for this kind of bridge is FUSE, a userspace filesystem layer. Per the author, MacFUSE and OSXFUSE never supported his setup and PowerPC support died around 2011, so that door is shut.[3](https://oldmac.policy-log.jp/en/apps/aqualink/) The solution comes in two parts.[2](https://github.com/watermark-hd/ppc-mac-modernization/blob/main/smb3/README.md)[3](https://oldmac.policy-log.jp/en/apps/aqualink/) First, AquaLink embeds a tiny HTTP/WebDAV server written directly on BSD sockets, handling just enough verbs: PROPFIND, GET, PUT, DELETE and neighbors. Second, it calls `mount_webdav`, the utility Tiger already ships, pointing it at `127.0.0.1`. The system sees an ordinary WebDAV mount, and the NAS share shows up in `/Volumes` like any other network volume.

> ARCHITECTURE
> **The bridge to Finder**
> - AquaLink speaks SMB3 to the NAS via libsmb2: 1
> - a mini WebDAV server listens on 127.0.0.1: 2
> - Tiger's mount_webdav mounts that local address: 3
> - a real volume appears in the Finder: 4
> No kernel driver, no FUSE extension.

Drag-and-drop both ways, double-click, eject: everything works through the usual gestures. The project goes further in the opposite direction too. Turned around, the same small server exposes folders local to the iBook onto the LAN, turning the old machine into a small NAS browsable from a modern Mac or PC. The original need was concrete: reading old RAW photos stored on the iBook from a current machine, without transferring anything first.[2](https://github.com/watermark-hd/ppc-mac-modernization/blob/main/smb3/README.md)

## In plain text

One point needs care: the coverage and its comment section got tangled.[4](https://hackaday.com/2026/08/25/native-smb3-client-brings-modern-nas-access-to-20-year-old-powerpc-macs/)

The repository carries an unambiguous warning: AquaLink's NAS mode transmits the password via HTTP Basic Auth over plain, unencrypted HTTP, because no practical alternative exists on this OS. The author restricts it to a trusted home LAN, forbids exposing it to the internet, and the bundled Windows helper script modifies registry settings to make the mode usable at all.[1](https://github.com/watermark-hd/ppc-mac-modernization)

Two different paths should not be conflated, though. The client path, the one linking the iBook to the NAS, runs an SMB session negotiated at version 3 with NTLMSSP authentication, and the library knows how to encrypt such sessions when asked.[5](https://github.com/sahlberg/libsmb2) Hackaday reports that encrypted shares remain out of reach for now on this generation of machines,[4](https://hackaday.com/2026/08/25/native-smb3-client-brings-modern-nas-access-to-20-year-old-powerpc-macs/) and neither the repository nor the article documents exactly where that block sits. Nobody knows yet precisely why end-to-end encryption fails; that is the honest open question of the project. The WebDAV hop itself is confined to the loopback interface and never physically leaves the machine.[2](https://github.com/watermark-hd/ppc-mac-modernization/blob/main/smb3/README.md)

> **What travels, and how**
> - SMB3 session with NTLMSSP auth, encryption not guaranteed so far: SMB3 client
> - WebDAV server bound to 127.0.0.1, never leaves the iBook: Local bridge
> - password sent as plain HTTP Basic Auth across the LAN: NAS mode
> - OSes unpatched for years: trusted LAN only: Host machines
> Based on the repository's own warnings and the libsmb2 documentation.

A few details show real care: the connection history keeps addresses but never passwords, and NAS mode stores the password in the system keychain using APIs that already existed under Tiger.[2](https://github.com/watermark-hd/ppc-mac-modernization/blob/main/smb3/README.md) The deeper issue stays, and the project owns it: these machines run security-unpatched systems, and the author asks users to treat them as inherently insecure.[1](https://github.com/watermark-hd/ppc-mac-modernization)

## The PackBits lesson

The build journal alone is worth the trip, because it records useful failures rather than a success story.[2](https://github.com/watermark-hd/ppc-mac-modernization/blob/main/smb3/README.md)[3](https://oldmac.policy-log.jp/en/apps/aqualink/)

Getting a proper icon under Tiger required building an old-style `.icns` file out of raw bitmap chunks modern tools no longer write. The PackBits compression was implemented with a wrong control-byte formula, but since encoder and decoder were wrong the same way, the round-trip test passed anyway. Only real hardware revealed the bug, as visual noise inside the icon. The fix came from reading libicns source, then decoding Aquafox's own icon as an external reference. The author draws a general rule: a self-written encoder and decoder that agree with each other only prove they share the same wrong assumption, never correctness.

A more serious episode: for a while, the disconnect button stopped the WebDAV server before confirming the volume had actually unmounted. When the unmount failed silently, the system kept an orphaned mount and all of `/Volumes` froze; recovery required standing something up again on the port. The fix reverses the order: confirm the `umount`, retrying with force if needed, and only then stop the server.[2](https://github.com/watermark-hd/ppc-mac-modernization/blob/main/smb3/README.md)

This care is written down at the root of the repository: a set of working instructions requires creating a `.bak` backup before every file modification and asking confirmation before any destructive operation, noting that the target machine is hard to restore and must be driven from a host Mac over SSH because no modern tools can be installed on it.[9](https://github.com/watermark-hd/ppc-mac-modernization/blob/main/CLAUDE.md) The project is developed with AI assistance, and those instructions say something true: on fragile, irreplaceable hardware, prudence should be written down somewhere before commands start flying.

One more episode completes the picture. A user of an unofficially patched PowerPC Snow Leopard image reported ejection always failing; investigation showed two different privilege-elevation APIs failing identically while terminal `sudo` worked every time, and the author classified it as a known limitation of that particular image rather than promising an unfixable-by-him correction.[2](https://github.com/watermark-hd/ppc-mac-modernization/blob/main/smb3/README.md)

## What you can use today

Keeping an old machine alive? Sample library, scanning station, writing machine: AquaLink answers a genuine daily problem for free and without extra hardware. Read the limits first: one publicly verified hardware configuration, a personal project with no license declared, meaning no explicit reuse rights for the code, and a trust boundary that stays your home network.[1](https://github.com/watermark-hd/ppc-mac-modernization)

The announced next step fits in one line on the project page: browser-based access to the shared folders, removing the dependency on the app itself.[3](https://oldmac.policy-log.jp/en/apps/aqualink/) If the bridge holds, the lesson gets sharper: when an industry closes a door behind hardware that still works, someone can sometimes reopen it in userspace, with an old gcc and a lot of patience.

## References

1. [watermark-hd, ppc-mac-modernization repository](https://github.com/watermark-hd/ppc-mac-modernization)
2. [watermark-hd, smb3/README.md build journal, ppc-mac-modernization repository](https://github.com/watermark-hd/ppc-mac-modernization/blob/main/smb3/README.md)
3. [AquaLink project page, oldmac.policy-log.jp](https://oldmac.policy-log.jp/en/apps/aqualink/)
4. [Maya Posch, Native SMB3 Client Brings Modern NAS Access To 20-Year-Old PowerPC Macs, Hackaday, August 25, 2026](https://hackaday.com/2026/08/25/native-smb3-client-brings-modern-nas-access-to-20-year-old-powerpc-macs/)
5. [Ronnie Sahlberg, libsmb2, LGPL 2.1 SMB2/3 client library](https://github.com/sahlberg/libsmb2)
6. [Daniel Eran Dilger, Apple shifts from AFP file sharing to SMB2 in OS X 10.9 Mavericks, AppleInsider, June 2013](https://appleinsider.com/articles/13/06/11/apple-shifts-from-afp-file-sharing-to-smb2-in-os-x-109-mavericks)
7. [Howard Oakley, Networking changes coming in macOS 27, The Eclectic Light Company, April 2026](https://eclecticlight.co/2026/04/23/networking-changes-coming-in-macos-27/)
8. [Synology, DSM 7.4 Technical Specifications, SMB protocol section](https://www.synology.com/en-us/dsm/7.4/software_spec/dsm)
9. [watermark-hd, CLAUDE.md file in the ppc-mac-modernization repository](https://github.com/watermark-hd/ppc-mac-modernization/blob/main/CLAUDE.md)
10. [SMB Is Mandatory Now: What macOS Dropping the AFP Client Means for Storage Engineers, DEV Community, August 2026](https://dev.to/mitakadigital/smb-is-mandatory-now-what-macos-dropping-the-afp-client-means-for-storage-engineers-46p0)
