flashpod 0.2.0__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {flashpod-0.2.0 → flashpod-0.2.2}/PKG-INFO +232 -52
- {flashpod-0.2.0 → flashpod-0.2.2}/README.md +231 -51
- {flashpod-0.2.0 → flashpod-0.2.2}/flashpod/cli.py +218 -31
- {flashpod-0.2.0 → flashpod-0.2.2}/flashpod/ipod_flash.py +13 -1
- {flashpod-0.2.0 → flashpod-0.2.2}/flashpod/platform/linux.py +4 -1
- {flashpod-0.2.0 → flashpod-0.2.2}/flashpod/platform/windows.py +70 -13
- {flashpod-0.2.0 → flashpod-0.2.2}/flashpod.egg-info/PKG-INFO +232 -52
- {flashpod-0.2.0 → flashpod-0.2.2}/pyproject.toml +1 -1
- {flashpod-0.2.0 → flashpod-0.2.2}/LICENSE +0 -0
- {flashpod-0.2.0 → flashpod-0.2.2}/flashpod/__init__.py +0 -0
- {flashpod-0.2.0 → flashpod-0.2.2}/flashpod/__main__.py +0 -0
- {flashpod-0.2.0 → flashpod-0.2.2}/flashpod/contrib/99-flashpod-firewire-ipod.rules +0 -0
- {flashpod-0.2.0 → flashpod-0.2.2}/flashpod/fat32.py +0 -0
- {flashpod-0.2.0 → flashpod-0.2.2}/flashpod/fatfs.py +0 -0
- {flashpod-0.2.0 → flashpod-0.2.2}/flashpod/firmware/firmware.json +0 -0
- {flashpod-0.2.0 → flashpod-0.2.2}/flashpod/itunesdb.py +0 -0
- {flashpod-0.2.0 → flashpod-0.2.2}/flashpod/platform/__init__.py +0 -0
- {flashpod-0.2.0 → flashpod-0.2.2}/flashpod/platform/base.py +0 -0
- {flashpod-0.2.0 → flashpod-0.2.2}/flashpod/platform/macos.py +0 -0
- {flashpod-0.2.0 → flashpod-0.2.2}/flashpod/resources.py +0 -0
- {flashpod-0.2.0 → flashpod-0.2.2}/flashpod.egg-info/SOURCES.txt +0 -0
- {flashpod-0.2.0 → flashpod-0.2.2}/flashpod.egg-info/dependency_links.txt +0 -0
- {flashpod-0.2.0 → flashpod-0.2.2}/flashpod.egg-info/entry_points.txt +0 -0
- {flashpod-0.2.0 → flashpod-0.2.2}/flashpod.egg-info/requires.txt +0 -0
- {flashpod-0.2.0 → flashpod-0.2.2}/flashpod.egg-info/top_level.txt +0 -0
- {flashpod-0.2.0 → flashpod-0.2.2}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flashpod
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: Command-line iPod sync + card-flashing tooling for early FireWire-era iPods, pure Python
|
|
5
5
|
Author: David Barnhart
|
|
6
6
|
License-Expression: MIT
|
|
@@ -30,13 +30,13 @@ Dynamic: license-file
|
|
|
30
30
|
|
|
31
31
|
# flashpod
|
|
32
32
|
|
|
33
|
-
flashpod is
|
|
34
|
-
|
|
33
|
+
flashpod is both an iPod flash-card imager and a tool for syncing and
|
|
34
|
+
organizing the music on it.
|
|
35
35
|
|
|
36
|
-
It handles the whole setup without iTunes, so you can revive a vintage iPod
|
|
37
|
-
and run it from a modern desktop: it writes the firmware to the card, creates
|
|
38
|
-
the initial music database, and loads the card with music. Then, once you pop
|
|
39
|
-
the card into an iPod and connect it over USB or FireWire, flashpod manages
|
|
36
|
+
It handles the whole setup without iTunes, so you can revive a vintage iPod
|
|
37
|
+
and run it from a modern desktop: it writes the firmware to the card, creates
|
|
38
|
+
the initial music database, and loads the card with music. Then, once you pop
|
|
39
|
+
the card into an iPod and connect it over USB or FireWire, flashpod manages
|
|
40
40
|
the library on the device too — adding and removing songs right on the iPod.
|
|
41
41
|
|
|
42
42
|
## Requirements
|
|
@@ -44,6 +44,11 @@ the library on the device too — adding and removing songs right on the iPod.
|
|
|
44
44
|
- **iPod:** Gen 1, 2, or 3 (tested successfully); Gen 4 should work but isn't
|
|
45
45
|
tested yet. Later models (2007 and newer) aren't supported — they need an
|
|
46
46
|
iTunesDB checksum/hash flashpod doesn't generate.
|
|
47
|
+
- **Adapters:** CF to 1.8" IDE adapter (common on eBay); CF to SD card adapter
|
|
48
|
+
(if using an SD card).
|
|
49
|
+
- **Flash cards:** CompactFlash card, or SD card with a CompactFlash adapter.
|
|
50
|
+
- **Card reader:** USB CompactFlash reader (to flash the card and load the bulk
|
|
51
|
+
of your music).
|
|
47
52
|
- **Operating system:** Linux and macOS (tested). Windows has a backend but
|
|
48
53
|
isn't tested yet.
|
|
49
54
|
|
|
@@ -66,9 +71,29 @@ Mac hardware. It's been tested on a MacBook running OS X 10.8 so far. Since old
|
|
|
66
71
|
Macs often can't get online, the macOS release can be copied to a USB drive on
|
|
67
72
|
a modern machine and installed on the MacBook from there.
|
|
68
73
|
|
|
74
|
+
## Loading music
|
|
75
|
+
|
|
76
|
+
There are two complementary ways to get music onto a flash-modded iPod:
|
|
77
|
+
|
|
78
|
+
1. **Over FireWire, once the card is installed in the iPod** — convenient, but
|
|
79
|
+
slower.
|
|
80
|
+
2. **A one-time bulk load onto the flash card while it's still in the card
|
|
81
|
+
reader** — fast, but only possible before the card goes into the iPod.
|
|
82
|
+
|
|
83
|
+
flashpod supports both. We suggest loading the majority of your library onto the
|
|
84
|
+
card while it's still in the (much faster) card reader, and saving the FireWire
|
|
85
|
+
sync for occasionally adding new albums later.
|
|
86
|
+
|
|
69
87
|
## Install
|
|
70
88
|
|
|
71
|
-
|
|
89
|
+
If you already have the **pip** Python package manager (or **pipx**), install
|
|
90
|
+
with a single command:
|
|
91
|
+
|
|
92
|
+
```sh
|
|
93
|
+
pip install flashpod # or: pipx install flashpod
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Otherwise, download the archive for your OS from the
|
|
72
97
|
[Releases page](https://github.com/davidbarnhart/flashpod/releases) — each holds
|
|
73
98
|
a single self-contained executable (no Python or anything else to install).
|
|
74
99
|
|
|
@@ -88,7 +113,7 @@ downloads the image you pick (verified by checksum), or you supply your own with
|
|
|
88
113
|
`--firmware`. (The **macOS 10.8** build is different — see below.) Building the
|
|
89
114
|
binaries yourself is documented in [BUILD.md](BUILD.md).
|
|
90
115
|
|
|
91
|
-
**Vintage Macs (OS X 10.8):** use `flashpod-macos-10.8.tar.gz`. Extract it,
|
|
116
|
+
**Vintage Macs (OS X 10.8):** use `flashpod-macos-10.8.tar.gz`. Extract it,
|
|
92
117
|
then make the binary runnable and clear the Gatekeeper quarantine (it's unsigned):
|
|
93
118
|
|
|
94
119
|
```sh
|
|
@@ -98,10 +123,6 @@ xattr -d com.apple.quarantine flashpod # or right-click → Open once
|
|
|
98
123
|
./flashpod --help
|
|
99
124
|
```
|
|
100
125
|
|
|
101
|
-
> `flashpod flash` needs root. `sudo` uses root's PATH, so if `sudo flashpod`
|
|
102
|
-
> isn't found, run it by full path — `sudo "$(command -v flashpod)" flash`, or
|
|
103
|
-
> `cd` into the extracted folder and run `sudo ./flashpod flash`.
|
|
104
|
-
|
|
105
126
|
## Typical workflow
|
|
106
127
|
|
|
107
128
|
**Set the card up in a USB reader first — transfers are far faster there than
|
|
@@ -109,9 +130,95 @@ over FireWire.** Flash it, then let flashpod initialize the database and load
|
|
|
109
130
|
your music, all in one sitting:
|
|
110
131
|
|
|
111
132
|
```sh
|
|
112
|
-
|
|
113
|
-
|
|
133
|
+
flashpod flash # flash firmware + format the card; then answer Y to
|
|
134
|
+
# init the database, and Y to load your music onto it
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
<details>
|
|
138
|
+
<summary><strong>See a full <code>flashpod flash</code> session</strong> — model and firmware pick, card selection, erase, verify, init, and first music load</summary>
|
|
139
|
+
|
|
114
140
|
```
|
|
141
|
+
$ flashpod flash
|
|
142
|
+
flashpod flash: writing to a disk needs root — elevating via sudo...
|
|
143
|
+
[sudo] password for david:
|
|
144
|
+
Which iPod are you flashing for?
|
|
145
|
+
|
|
146
|
+
# iPod Years How to identify it
|
|
147
|
+
- -------------- ------- ------------------------------------------------
|
|
148
|
+
0 1st generation 2001-02 scroll wheel physically turns
|
|
149
|
+
1 2nd generation 2002 wheel does not move (touch-sensitive)
|
|
150
|
+
2 3rd generation 2003 four buttons in a row above the wheel
|
|
151
|
+
3 4th generation 2004 click wheel, buttons on the wheel, grayscale
|
|
152
|
+
4 iPod photo 2004-05 click wheel, color display
|
|
153
|
+
|
|
154
|
+
Select model: 0
|
|
155
|
+
Firmware for 1st generation (newest first):
|
|
156
|
+
|
|
157
|
+
# Version Built Size Notes
|
|
158
|
+
- ------- ---------- ---- ----------------------------------------------
|
|
159
|
+
0 1.5 * 2005-02-18 2.0M Last stock Apple-released firmware for 1G/2G
|
|
160
|
+
iPods
|
|
161
|
+
1 1.4 2004-04-23 1.9M Adds 20+ EQ presets, shuffle by album, track
|
|
162
|
+
scrubbing, Contacts/Calendar/Clock, Korean and
|
|
163
|
+
Chinese; iTunes 4.5 compatibility
|
|
164
|
+
2 0.4 2001-12-23 0.7M Adds Italian, Dutch, Spanish, Brazilian
|
|
165
|
+
Portuguese, Danish, Finnish, Norwegian and
|
|
166
|
+
Swedish; 255-character filenames; fixes low-
|
|
167
|
+
battery sleep wake and blue-and-white Power
|
|
168
|
+
Macintosh G3 compatibility
|
|
169
|
+
3 0.0 2001-11-01 0.7M Initial release for the original 1G iPod
|
|
170
|
+
|
|
171
|
+
* recommended default
|
|
172
|
+
|
|
173
|
+
Select firmware [0]: 0
|
|
174
|
+
flashpod flash: downloading iPod_1.1.5_2005_02_18.bin.gz
|
|
175
|
+
from https://github.com/davidbarnhart/flashpod/releases/download/firmware/iPod_1.1.5_2005_02_18.bin.gz
|
|
176
|
+
91% (1.8/2.0 MiB)
|
|
177
|
+
flashpod flash: verified and cached iPod_1.1.5_2005_02_18.bin.gz
|
|
178
|
+
firmware OK: iPod_1.1.5_2005_02_18.bin.gz (5068800 bytes, structure validated)
|
|
179
|
+
Attached removable storage:
|
|
180
|
+
|
|
181
|
+
# Device Size Reader
|
|
182
|
+
- -------- --------- ------------------------------------------
|
|
183
|
+
0 /dev/sdb 119.1 GiB USB3.0 Card Reader (Genesys Logic), slot 1
|
|
184
|
+
MBR: unformatted 32 MiB, vfat 119.1 GiB 'IPOD' <-
|
|
185
|
+
looks like an iPod card
|
|
186
|
+
1 /dev/sdc 0 B USB3.0 Card Reader (Genesys Logic), slot 2
|
|
187
|
+
no card inserted
|
|
188
|
+
|
|
189
|
+
Select device number (or 'q' to quit): 0
|
|
190
|
+
|
|
191
|
+
PLAN — this will ERASE /dev/sdb
|
|
192
|
+
layout : MBR + FAT32
|
|
193
|
+
device size : 119.1 GiB (249737216 sectors)
|
|
194
|
+
firmware : sectors 63..65598 (32 MiB)
|
|
195
|
+
data (FAT32) : sectors 65599..249735167 type 0x0B (119.1 GiB)
|
|
196
|
+
|
|
197
|
+
Type "ERASE sdb" to proceed: ERASE sdb
|
|
198
|
+
wrote MBR partition table + firmware
|
|
199
|
+
formatted data partition (FAT32, 7798364 clusters @ 16 KiB, label 'IPOD')
|
|
200
|
+
verifying firmware on the card byte-for-byte (5068800 bytes @ sector 63) ...
|
|
201
|
+
verify OK: 5068800 firmware bytes on the card match the image exactly.
|
|
202
|
+
|
|
203
|
+
The card still needs the iPod database before it can take music ("flashpod init").
|
|
204
|
+
Run init on /dev/sdb2 now? [Y/n] Y
|
|
205
|
+
Initialized iPod directory structure on /dev/sdb2
|
|
206
|
+
|
|
207
|
+
Music can be loaded onto the card now, or later when it is in the iPod.
|
|
208
|
+
Load music onto the card now? [Y/n] Y
|
|
209
|
+
File or directory to add (TAB to complete): /mnt/homestore/sound/mp3/New Order/Technique/
|
|
210
|
+
flashpod add: this batch is 54.8 MiB. You've got 118.94 GiB more than you need, Dude. That's gnarly!
|
|
211
|
+
[6/9] Adding: Run — New Order... 100% (6.2/6.2 MiB)
|
|
212
|
+
[7/9] Adding: Mr. Disco — New Order... 100% (6.0/6.0 MiB)
|
|
213
|
+
[8/9] Adding: Vanishing Point — New Order... 100% (7.3/7.3 MiB)
|
|
214
|
+
[9/9] Adding: Dream Attack — New Order... 100% (7.2/7.2 MiB)
|
|
215
|
+
9 tracks added in 42s (54.8 MiB at 1.3 MiB/s)
|
|
216
|
+
flushing + ejecting /dev/sdb
|
|
217
|
+
|
|
218
|
+
Done. /dev/sdb is ready — insert it into the iPod.
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
</details>
|
|
115
222
|
|
|
116
223
|
Load the **bulk** of your library now, while the card is in the reader. Once the
|
|
117
224
|
card is in the iPod, music transfers over FireWire are much slower — fine for a
|
|
@@ -121,16 +228,16 @@ Now pop the card into the iPod and connect the iPod to your computer. flashpod
|
|
|
121
228
|
finds it on its own — no mounting, no device paths, no `sudo` to type:
|
|
122
229
|
|
|
123
230
|
```
|
|
124
|
-
$ flashpod
|
|
231
|
+
$ flashpod list
|
|
125
232
|
flashpod: looking for an iPod means reading attached disks, which needs root — elevating via sudo...
|
|
126
|
-
|
|
127
|
-
Found iPod on /dev/
|
|
128
|
-
iPod "
|
|
233
|
+
[sudo] password for david:
|
|
234
|
+
Found iPod on /dev/sdb2 (IPOD FireWire 119.1G) — 25 tracks.
|
|
235
|
+
iPod "iPod": 25 tracks, 2 artists, 3 albums
|
|
236
|
+
Can
|
|
237
|
+
Tago Mago (7 tracks)
|
|
129
238
|
New Order
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
The Cure
|
|
133
|
-
Kiss Me, Kiss Me, Kiss Me (18 tracks)
|
|
239
|
+
Brotherhood (9 tracks)
|
|
240
|
+
Technique (9 tracks)
|
|
134
241
|
```
|
|
135
242
|
|
|
136
243
|
Add or remove the odd track right on the device:
|
|
@@ -151,51 +258,95 @@ Removed 12 tracks
|
|
|
151
258
|
|
|
152
259
|
## Commands
|
|
153
260
|
|
|
154
|
-
|
|
261
|
+
The easiest way to use flashpod is to run a simple command — like `flashpod
|
|
262
|
+
flash` or `flashpod add` — and let it walk you through the options. Many
|
|
263
|
+
commands accept extra flags, but you don't need to supply any.
|
|
264
|
+
|
|
265
|
+
**flashpod finds your iPod for you.** With no flags, it uses one that's already
|
|
155
266
|
mounted; otherwise it scans the attached disks and picks out the iPod by the
|
|
156
267
|
iTunes database on it (no guessing from volume labels), then reads and writes it
|
|
157
268
|
**directly over the raw device** with its own FAT driver — no OS mount required.
|
|
269
|
+
|
|
158
270
|
That raw path is what lets flashpod manage an iPod the OS *can't* mount, like a
|
|
159
271
|
flash-modded FireWire iPod on a Mac (macOS's read-ahead corrupts the boot
|
|
160
272
|
sector, so it refuses the volume). Raw access needs root, so flashpod re-runs
|
|
161
273
|
itself under sudo and prompts for your password — you never type `sudo`
|
|
162
274
|
yourself.
|
|
163
275
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
276
|
+
If more than one iPod is attached — say a freshly-flashed card sitting in a
|
|
277
|
+
reader while a FireWire iPod is also plugged in — flashpod lists them and asks
|
|
278
|
+
which to use rather than picking one for you. And on Linux, if a FireWire iPod
|
|
279
|
+
is plugged in but the kernel hasn't attached it as a disk yet, flashpod loads
|
|
280
|
+
the driver it needs first, so the iPod shows up instead of silently going
|
|
281
|
+
missing.
|
|
169
282
|
|
|
170
|
-
All library commands — `
|
|
283
|
+
All library commands — `list`, `add`, `rm`, `init`, `rebuild` — work this way.
|
|
171
284
|
|
|
172
|
-
### `flashpod
|
|
285
|
+
### `flashpod list`
|
|
173
286
|
|
|
174
287
|
```
|
|
175
|
-
$ flashpod
|
|
176
|
-
iPod "iPod":
|
|
288
|
+
$ flashpod list # artist → album tree with track counts
|
|
289
|
+
iPod "iPod": 25 tracks, 2 artists, 3 albums
|
|
290
|
+
Can
|
|
291
|
+
Tago Mago (7 tracks)
|
|
177
292
|
New Order
|
|
178
|
-
|
|
179
|
-
|
|
293
|
+
Brotherhood (9 tracks)
|
|
294
|
+
Technique (9 tracks)
|
|
180
295
|
|
|
181
|
-
$ flashpod
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
296
|
+
$ flashpod list all # same tree + every track (id, track no., duration)
|
|
297
|
+
$ flashpod list artist # flat per-artist track counts (or `artists`)
|
|
298
|
+
$ flashpod list album # flat per-album track counts (or `albums`)
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
<details>
|
|
302
|
+
<summary><strong>See full <code>flashpod list all</code> output</strong> — every track with its id, track number, and duration</summary>
|
|
186
303
|
|
|
187
|
-
$ flashpod ls artist # flat per-artist track counts (or `artists`)
|
|
188
|
-
$ flashpod ls album # flat per-album track counts (or `albums`)
|
|
189
304
|
```
|
|
305
|
+
$ flashpod list all
|
|
306
|
+
flashpod: looking for an iPod means reading attached disks, which needs root — elevating via sudo...
|
|
307
|
+
Found iPod on /dev/sdb2 (IPOD FireWire 119.1G) — 25 tracks.
|
|
308
|
+
iPod "iPod": 25 tracks, 2 artists, 3 albums
|
|
309
|
+
Can
|
|
310
|
+
Tago Mago
|
|
311
|
+
70 1. Paperhouse 7:28
|
|
312
|
+
71 2. Mushroom 4:03
|
|
313
|
+
72 3. Oh Yeah 7:24
|
|
314
|
+
73 4. Halleluhwah 18:28
|
|
315
|
+
74 5. Aumgn 17:33
|
|
316
|
+
75 6. Peking O 11:38
|
|
317
|
+
76 7. Bring Me Coffee or Tea 6:46
|
|
318
|
+
New Order
|
|
319
|
+
Brotherhood
|
|
320
|
+
61 1. Paradise 3:50
|
|
321
|
+
62 2. Weirdo 3:52
|
|
322
|
+
63 3. As It Is When It Was 3:46
|
|
323
|
+
64 4. Broken Promise 3:47
|
|
324
|
+
65 5. Way Of Life 4:05
|
|
325
|
+
66 6. Bizarre Love Triangle 4:21
|
|
326
|
+
67 7. All Day Long 5:12
|
|
327
|
+
68 8. Angel Dust 3:43
|
|
328
|
+
69 9. Every Little Counts 4:25
|
|
329
|
+
Technique
|
|
330
|
+
52 1. Fine Time 4:42
|
|
331
|
+
53 2. All The Way 3:24
|
|
332
|
+
54 3. Love Less 3:04
|
|
333
|
+
55 4. Round And Round 4:31
|
|
334
|
+
56 5. Guilty Partner 4:48
|
|
335
|
+
57 6. Run 4:31
|
|
336
|
+
58 7. Mr. Disco 4:21
|
|
337
|
+
59 8. Vanishing Point 5:17
|
|
338
|
+
60 9. Dream Attack 5:12
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
</details>
|
|
190
342
|
|
|
191
|
-
Track ids shown by `
|
|
343
|
+
Track ids shown by `list all` are what `flashpod rm <id>` takes.
|
|
192
344
|
|
|
193
345
|
### `flashpod add [path ...]`
|
|
194
346
|
|
|
195
347
|
Add audio files and/or directories. Directories are scanned recursively in
|
|
196
|
-
sorted order
|
|
197
|
-
|
|
198
|
-
and bitrate are read automatically (mutagen).
|
|
348
|
+
sorted order. Recognized extensions: `.mp3 .m4a .m4b .aac .wav .aif .aiff`.
|
|
349
|
+
Tags, duration, and bitrate are read automatically.
|
|
199
350
|
|
|
200
351
|
Files already on the iPod are skipped, so you can safely re-point `add` at an
|
|
201
352
|
overlapping set — e.g. add a single, then later add the whole album folder
|
|
@@ -205,9 +356,9 @@ duplicate when its size, duration, and title all match one already present
|
|
|
205
356
|
copies have a different size and are added as new.
|
|
206
357
|
|
|
207
358
|
```
|
|
359
|
+
$ flashpod add # ← the usual way: prompts, with tab completion
|
|
208
360
|
$ flashpod add ~/music/Some\ Album # a directory
|
|
209
361
|
$ flashpod add a.mp3 b.mp3 ~/music/More/ # mix files and directories
|
|
210
|
-
$ flashpod add # no args: prompts, with tab completion
|
|
211
362
|
```
|
|
212
363
|
|
|
213
364
|
Progress is one line per track, shown in a scrolling 4-line window so a big
|
|
@@ -225,6 +376,28 @@ window, are counted in the summary, and don't stop the batch:
|
|
|
225
376
|
12 tracks added, 1 skipped (already on iPod), 1 failed in 1m02s
|
|
226
377
|
```
|
|
227
378
|
|
|
379
|
+
<details>
|
|
380
|
+
<summary><strong>See a full <code>flashpod add</code> session</strong> — adding an album to the iPod over FireWire</summary>
|
|
381
|
+
|
|
382
|
+
```
|
|
383
|
+
$ flashpod add
|
|
384
|
+
flashpod: add over the iPod's raw device needs root — elevating via sudo...
|
|
385
|
+
Found iPod on /dev/sdb2 (IPOD FireWire 119.1G).
|
|
386
|
+
File or directory to add (TAB to complete): /mnt/homestore/sound/mp3/New Order/Brotherhood/
|
|
387
|
+
flashpod add: this batch is 51.0 MiB. You've got 118.89 GiB more than you need, Dude. That's gnarly!
|
|
388
|
+
[6/9] Adding: Bizarre Love Triangle — New Order... 100% (6.0/6.0 MiB)
|
|
389
|
+
[7/9] Adding: All Day Long — New Order... 100% (7.2/7.2 MiB)
|
|
390
|
+
[8/9] Adding: Angel Dust — New Order... 100% (5.1/5.1 MiB)
|
|
391
|
+
[9/9] Adding: Every Little Counts — New Order... 100% (6.1/6.1 MiB)
|
|
392
|
+
9 tracks added in 2m38s (51.0 MiB at 330 KiB/s)
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
Run with no arguments, `add` finds the iPod itself and prompts for a path (with
|
|
396
|
+
tab completion). Only the last four progress lines stay on screen — tracks 1–5
|
|
397
|
+
scrolled away above.
|
|
398
|
+
|
|
399
|
+
</details>
|
|
400
|
+
|
|
228
401
|
> **Adding over FireWire is slow** (~270 KiB/s — a hardware limit of these early
|
|
229
402
|
> bridges, not something a setting can fix). For **bulk** loads, pull the card
|
|
230
403
|
> into a USB reader and `add` over the normal mount — USB bypasses the bridge
|
|
@@ -233,7 +406,7 @@ window, are counted in the summary, and don't stop the batch:
|
|
|
233
406
|
### `flashpod rm`
|
|
234
407
|
|
|
235
408
|
```
|
|
236
|
-
$ flashpod rm 52 53 # by track id (see `flashpod
|
|
409
|
+
$ flashpod rm 52 53 # by track id (see `flashpod list all`)
|
|
237
410
|
$ flashpod rm artist Relic Pop # every track by the artist
|
|
238
411
|
$ flashpod rm album Thick As Thieves # every track in the album
|
|
239
412
|
```
|
|
@@ -257,18 +430,25 @@ Rebuild the iTunes database **from the music files already on the iPod**. Walks
|
|
|
257
430
|
`iPod_Control/Music/F##`, reads each track's tags, and writes a fresh database
|
|
258
431
|
pointing at the existing files — so a corrupt or missing database is recovered
|
|
259
432
|
without re-copying or losing music. (It reads every track to sniff its tags, so
|
|
260
|
-
it's slow over FireWire; fine for a one-off recovery.) `flashpod
|
|
433
|
+
it's slow over FireWire; fine for a one-off recovery.) `flashpod list` points you
|
|
261
434
|
here when it finds an iPod with an unparseable database, and `flashpod add` onto
|
|
262
435
|
such an iPod offers to rebuild first, then adds your new files on top.
|
|
263
436
|
|
|
264
437
|
### `flashpod flash [/dev/sdX]`
|
|
265
438
|
|
|
266
439
|
Write the iPod firmware and partition layout to a CF/SD card. **Erases the
|
|
267
|
-
card.**
|
|
440
|
+
card.** Writing needs root, so flashpod re-runs itself under sudo (prompting for
|
|
441
|
+
your password) — you launch it as a regular user.
|
|
442
|
+
|
|
443
|
+
**Just run `flashpod flash` with no arguments.** That's the normal way: it lists
|
|
444
|
+
the removable disks, walks you through picking the right one, writes the
|
|
445
|
+
firmware, and then offers to initialize the database and load your music — the
|
|
446
|
+
whole card set up in one sitting. The forms below are only for when you want to
|
|
447
|
+
name the device yourself or preview the plan.
|
|
268
448
|
|
|
269
449
|
```
|
|
270
|
-
$
|
|
271
|
-
$
|
|
450
|
+
$ flashpod flash # ← the usual way: pick a disk interactively
|
|
451
|
+
$ flashpod flash /dev/sdb # name the device yourself
|
|
272
452
|
$ flashpod flash /dev/sdb --dry-run # print the plan, write nothing (no root)
|
|
273
453
|
$ flashpod flash --self-test # validate layout logic, no hardware
|
|
274
454
|
```
|