This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
netmdlinux [2009/04/24 11:37] marcus fix link |
netmdlinux [2010/03/19 18:23] (current) megadiscman |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== NetMDLinux ====== | ====== NetMDLinux ====== | ||
+ | |||
+ | ===== Software ===== | ||
There are several orphanend open-source projects aiming to support NetMD Walkman devices under Linux, namely: | There are several orphanend open-source projects aiming to support NetMD Walkman devices under Linux, namely: | ||
- | libnetmd: A library to connect to NetMD Walkman - [[http://libnetmd.sourceforge.net/]] and [[http://www.unmaintained-free-software.org/wiki/Libnetmd]] | + | * libnetmd: A library to connect to NetMD Walkman - [[http://libnetmd.sourceforge.net/]] and [[http://www.unmaintained-free-software.org/wiki/Libnetmd]] |
+ | * Patch for libnetmd to add support for MZ-RH1 and -RH10, also minor casting fixes: [[http://users.physik.fu-berlin.de/~glaubitz/linux-minidisc/0001-cast-fixes-MZ-NH600-MZ-RH1-MZ-RH10-support-adde.patch]] | ||
+ | * gnetmd: A GUI for libnetmd - [[http://www.pdr.cx/projects/gnetmd/main]]/ | ||
+ | * Xmd: NetMD software for Mac OS X - [[http://www.sorted.org/Xmd/]] | ||
+ | * WinNMD: non-free Windows software - [[http://winnmd.net/]] | ||
+ | * FreeMD: how the NetMD protocol works, and a shell to set track titles etc. | ||
+ | * [[http://www.marcus-brinkmann.de/files/freemd.html]] | ||
+ | * [[http://software.marcus-brinkmann.org/projects/show/freemd]] | ||
+ | * bzr branch http://bzr.marcus-brinkmann.org/freemd/trunk/ freemd | ||
+ | * <del>There is a funding project, supporting a resume of the development of the libnetmd software, see [[http://www.cofundos.org/project.php?id=122]].</del> | ||
- | Patch for libnetmd to add support for MZ-RH1 and -RH10, also minor casting fixes: [[http://users.physik.fu-berlin.de/~glaubitz/linux-minidisc/0001-cast-fixes-MZ-NH600-MZ-RH1-MZ-RH10-support-adde.patch]] | + | ===== Official Specs and Patents ===== |
- | + | ||
- | gnetmd: A GUI for libnetmd - [[http://www.pdr.cx/projects/gnetmd/main]]/ | + | |
- | + | ||
- | Xmd: NetMD software for Mac OS X - [[http://www.sorted.org/Xmd/]] | + | |
- | + | ||
- | WinNMD: non-free Windows software - [[http://winnmd.net/]] | + | |
- | + | ||
- | FreeMD: how the NetMD protocol works, and a shell to set track titles etc. | + | |
- | * [[http://www.marcus-brinkmann.de/files/freemd.html]] | + | |
- | * [[http://software.marcus-brinkmann.org/projects/show/freemd]] | + | |
- | * bzr branch http://bzr.marcus-brinkmann.org/freemd/trunk/ freemd | + | |
The NetMD protocol is based on the AV/C Digital Interface Command Set, an 1394 TA specification: | The NetMD protocol is based on the AV/C Digital Interface Command Set, an 1394 TA specification: | ||
+ | |||
* 2004006 AV/C Digital Interface Command Set General Specification Version 4.2 | * 2004006 AV/C Digital Interface Command Set General Specification Version 4.2 | ||
* 2004005 AV/C Tape Recorder/Player Subunit Specification 2.4 | * 2004005 AV/C Tape Recorder/Player Subunit Specification 2.4 | ||
* 2002013 AV/C Descriptor Mechanism 1.2 | * 2002013 AV/C Descriptor Mechanism 1.2 | ||
- | * 2002002 AV/C Disc Subunit - Generic Recordable Video Disc Media Type Specification 1.0 | + | * <del>2002002 AV/C Disc Subunit - Generic Recordable Video Disc Media Type Specification 1.0</del> For MD, 1998014 is relevant instead of this document. |
+ | * {{:avc_disc10.pdf|1998013 AV/C Disc Subunit Generic Specification 1.0}} | ||
+ | * [[http://users.physik.fu-berlin.de/~glaubitz/linux-minidisc/AVC_DiscMDAudio10.pdf|1998014 AV/C Disc Media Type Specification - MD Audio]] | ||
+ | |||
+ | Here is an older document by the TradeAssociation: | ||
+ | |||
+ | * {{:avc_general_30.pdf|1998003 AV/C Digital Interface Command Set General Specification Version 3.0}} | ||
+ | * The Sony patent [[https://wiki.physik.fu-berlin.de/linux-minidisc/lib/exe/fetch.php?media=us7437770.pdf |US7437770]] describes in details the entire communication between a NetMD device and a PC starting with the exclusive login and retrieving of the track titles. The data exchange commands are shown in the form control/response frames (Figures 33-49). It's quite easy to understand the stuff, especially by working in conjuction with the AV/C documents mentioned above. | ||
+ | * Loading files on the MiniDisc Player, in particular the role of the EKB, is described in the [[http://www.marcus-brinkmann.de/files/pat7228568.pdf|US Patent 7228568]] (retrieved via [[http://www.pat2pdf.org/]]), which contains some hilariously bad cryptography (and is in any other way utterly trivial). This answers many, but not all, questions about the file transfer logs. | ||
+ | * YAP: [[http://www.marcus-brinkmann.de/files/pat7362870.pdf|US Patent 7362870]]. Also noteworthy may be US Patent 20050246286, which seems to document how OpenJukeBox manages licenses. | ||
+ | ===== Other Information ===== | ||
+ | |||
+ | * More protocol info: http://bertrik.sikken.nl/netmd/ | ||
+ | * Download to a NetMD device [[AtracDownload|Atrac download dump]] | ||
+ | * Upload of ATRAC SP with RH1: [[RH1AtracUpload|RH1 upload dump]] | ||
+ | * NetMD firmware: [[http://esi.sony.ca/esupport/esupport/NetMD/]] | ||
- | Loading files on the MiniDisc Player, in particular the role of the EKB, is described in the [[http://www.marcus-brinkmann.de/files/pat7228568.pdf|US Patent 7228568]] | + | ===== The EKB-Format ===== |
- | (retrieved via [[http://www.pat2pdf.org/]]), which contains some hilariously bad cryptography (and is in any other way utterly trivial). This answers many, but not all, questions about the file transfer logs. | + | |
- | TODO: Check other Sony patents. | + | The EKB format is mostly revealed now. There is now a [[Dump EKB]] tool that can be used to display EKB files. Here is an example output (the unique keys have been blacked out): |
+ | <code> | ||
+ | $ ./dump-ekb.py 00010001.ekb | ||
+ | EKB 00010001.ekb | ||
+ | Unknown 1/2: 0x1 0x1 | ||
+ | Reserved: 0x0 | ||
+ | Unknown 3: 0ff4xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | ||
+ | Tag Length: 0x1c | ||
+ | Data Length: 0x130 | ||
+ | Sig Length: 0x134 | ||
+ | Tags: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | ||
+ | Data: bf71xxxxxxxxxxxxxxxxxxxxxxxxxxxx Enc(K000000000,KR) | ||
+ | 01caxxxxxxxxxxxxxxxxxxxxxxxxxxxx Enc(K000000010,KR) | ||
+ | 2c4bxxxxxxxxxxxxxxxxxxxxxxxxxxxx Enc(K0000000110,KR) | ||
+ | a8ecxxxxxxxxxxxxxxxxxxxxxxxxxxxx Enc(K00000001100000,K0000000110) | ||
+ | 7d5bxxxxxxxxxxxxxxxxxxxxxxxxxxxx Enc(K00000001100001,K0000000110) | ||
+ | e721xxxxxxxxxxxxxxxxxxxxxxxxxxxx Enc(K00000001100010,K0000000110) | ||
+ | 24aaxxxxxxxxxxxxxxxxxxxxxxxxxxxx Enc(K00000001100011,K0000000110) | ||
+ | e664xxxxxxxxxxxxxxxxxxxxxxxxxxxx Enc(K00000001100100,K0000000110) | ||
+ | be2dxxxxxxxxxxxxxxxxxxxxxxxxxxxx Enc(K00000001100101,K0000000110) | ||
+ | 846axxxxxxxxxxxxxxxxxxxxxxxxxxxx Enc(K00000001100110,K0000000110) | ||
+ | 5695xxxxxxxxxxxxxxxxxxxxxxxxxxxx Enc(K00000001100111,K0000000110) | ||
+ | 792exxxxxxxxxxxxxxxxxxxxxxxxxxxx Enc(K00000000100000000,KR) | ||
+ | 0679xxxxxxxxxxxxxxxxxxxxxxxxxxxx Enc(K0000000010000001010,KR) | ||
+ | 3ebexxxxxxxxxxxxxxxxxxxxxxxxxxxx Enc(K0000000010000001100,KR) | ||
+ | 5649xxxxxxxxxxxxxxxxxxxxxxxxxxxx Enc(K0000000010000001110,KR) | ||
+ | 9913xxxxxxxxxxxxxxxxxxxxxxxxxxxx Enc(K0000000010000010000,KR) | ||
+ | ac8cxxxxxxxxxxxxxxxxxxxxxxxxxxxx Enc(K0000000010000010010,KR) | ||
+ | dd10xxxxxxxxxxxxxxxxxxxxxxxxxxxx Enc(K0000000010000010100,KR) | ||
+ | d0c9xxxxxxxxxxxxxxxxxxxxxxxxxxxx Enc(K00000000100000010000,KR) | ||
+ | Sig Unknown: 00000017020000000100 | ||
+ | Sig Len: 0x28 | ||
+ | Sig: 7b51xxxxxxxxxxxxxxxxxxxxxxxxxxxx | ||
+ | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | ||
+ | xxxxxxxxxxxxxxxx | ||
+ | </code> | ||
- | There is a funding project, supporting a resume of the development of the libnetmd software, see [[http://www.cofundos.org/project.php?id=122]]. | + | ===== Links ===== |
+ | * [[http://minidisc.org/NetMD_faq.html]] |