• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category Rbutil
  • Assigned To No-one
  • Operating System iPod Nano
  • Severity Low
  • Priority Very Low
  • Reported Version Daily build (which?)
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by empedocles - 2008-08-30
Last edited by bluebrother - 2008-12-13

FS#9340 - patch for openBSD support for rbutilqt

The following patches will allow you to build rbutilqt on openBSD for use with the iPod Nano. I have not tested these patches on other BSD’s, nor have I tested these patches with other mp3 players.

To compile, you will need:

qt4 (remember to qmake4 instead of qmake)

rockbox dependencies:

a patched version of ipodpatcher (posted earlier on here; currently, having some build issues with development changes to creative.c, so watch out for these)

a partially patched version of sansapatcher (will post later; I currently don’t own one, so don’t expect the patches to do anything besides getting you through the build process.)

Other dependencies will become apparent during the build.

I assume that the iPod is being mounted this way:

mount -t msdos /dev/sd0j /mnt/ipod

I assume that you are explicitly using type msdos; however, you can replace sd0 with sd followed by any number appropriate to your machine. The patch for ipodpatcher assumes the iPod is being treated as a block device (sd0j form) instead of a raw device (rsd0j form).

Note: The combined.diff combines the above diffs into one file for ease of patching. The voicefile.diff is a hack to get through the build process.

Closed by  bluebrother
2008-12-13 10:11
Reason for closing:  Accepted
Additional comments about closing:   Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407

committed except the voicefile change as I guess this issue will hit in various other places as well, thus it would be better dealing with it separately.

I skimmed your diffs and are really puzzled about voicefile.diff – I see no reason why this change would be needed. Can you please explain this further? Also, I'm a bit surprised that BSD uses "msdos" for mounting the player – on linux it's "vfat", and I'd expect BSD to use this too – at least on linux the "msdos" mount option doesn't handle long filenames. Does the BSD "msdos" handle this (I don't have any experience with BSD)?

openBSD uses a older compiler. It's gcc-3.3.5 (with propolice), so I suspect the older compiler had some issues resolving that one line in voicefile.cpp. I still need to look into this further, but to get it working, I figured the hack was a better solution over installing from the ports tree a newer version of gcc. This will just add to the complexity of the build when I finally get around to start setting this up as an actual port.

As for the msdos, that is what BSD uses to mount fat32 file systems. msdos does provide long file name support. If you want explicit support, you need to mount with the -l option. However, if any files in the root directory of the file system being mounted use a long filename, then the -l option is defaulted. Here's some more information:

Some additional information:

sd0 at scsibus1 targ 1 lun 0: <Apple, iPod, 1.62> SCSI0 0/direct removable
sd0: 976MB, 512 bytes/sec, 1999872 sec total

# disklabel sd0
disklabel: warning, DOS partition table with no valid OpenBSD partition
# /dev/rsd0c:
type: SCSI disk: SCSI disk
label: iPod
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 124
total sectors: 1999872
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # microseconds
track-to-track seek: 0 # microseconds
drivedata: 0

16 partitions:
# size offset fstype [fsize bsize cpg]

c:          1999872                0  unused      0     0
i:           160587               63  unused      0     0
j:          1839221           160650   MSDOS

Now openBSD also offers another msdos filesystem: ntfs. But the ipod nano 1st gen
isn't built with it. I'm not sure about the other ipods.

the only filesystem supported by rockbox is FAT32 (mount -t msdos on OpenBSD), so no need to bother with other filesystems


Available keyboard shortcuts


Task Details

Task Editing