Migrating wiki contents from Google Code

This commit is contained in:
Google Code Exporter 2015-05-09 14:50:13 -04:00
commit c798408728
5 changed files with 153 additions and 0 deletions

57
BuildingOnLinux.md Normal file
View File

@ -0,0 +1,57 @@
# Introduction #
I haven't yet figured out a preferable way to package binaries for Linux, so for now, I'm just going to provide compile instructions.
# Details #
These instructions should work with Ubuntu 9.10 and later. I'm unsure of how it works with other distributions. You can also make it work with Ubuntu 9.04 if you install a newer version of libudev and its development package.
First of all, make sure you have Qt 4.x and its related stuff installed. Most distributions provide Qt, so make sure you have your distribution's Qt development packages installed. On Debian-based systems, the development package is called `libqt4-dev` (installing this package should give you everything you need). Alternatively, you can [download the Qt SDK](http://qt.nokia.com/products/qt-sdk) to get what you need. If for some reason the version of Qt supplied by your distribution doesn't work, the Qt SDK will work fine.
You will also need libudev and its development package. On Debian-based systems, this development package (which will also install libudev due to its dependencies) is called `libudev-dev`.
Once that is taken care of, you need to create a folder where you'll compile this stuff:
```
mkdir SIMMProgrammer
cd SIMMProgrammer
```
Get the source code you need:
```
git clone https://code.google.com/p/mac-rom-simm-programmer.software/
hg clone https://code.google.com/r/doug-qextserialport-linuxnotifications
```
Compile it:
```
mkdir build
cd build
qmake ../mac-rom-simm-programmer.software/
make
```
The code doesn't currently compile with Qt 5, so if you have a newer system, you may need to substitute the command "qmake-qt4" in place of "qmake" to ensure it uses Qt 4.
You should have an executable called SIMMProgrammer in the build directory now. You can run it in the command line or create a shortcut for it or whatever.
```
./SIMMProgrammer
```
It may not talk to the SIMM programmer correctly because of udev rules. Create a file called `99-simm-programmer.rules` in `/etc/udev/rules.d`, containing:
```
ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="06aa", MODE="0666", GROUP="plugdev", ENV{ID_MM_DEVICE_IGNORE}="1"
```
Then, reload udev's rules by typing:
```
sudo udevadm control --reload-rules
```
Now, unplug and replug the programmer board and you should be in business!

28
CreatingUdevRules.md Normal file
View File

@ -0,0 +1,28 @@
# Introduction #
I had a lot of trouble getting my udev rule correct for the SIMM programmer board, so I wanted to explain more about how I figured out what to do.
# Details #
We need a udev rule on Linux because it defaults to giving a USB CDC modem port permissions such that only root and members of the dialout group can talk to it. The rule simply gives read and write permissions to all users, and gives it to the plugdev group rather than the dialout group.
udev rules work by matching certain attributes and performing actions in response if the attributes match. In this case, we want to match on the USB vendor and device ID.
To get a list of attributes for a specific device (assuming /dev/ttyACM0 in this example), type:
```
sudo udevadm info --name=/dev/ttyACM0 --attribute-walk
```
This will give an awesome list of all of that device's attributes, along with a quick explanation of how the rules will work.
Rule for the SIMM programmer board:
```
ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="06aa", MODE="0666", GROUP="plugdev", ENV{ID_MM_DEVICE_IGNORE}="1"
```
I added the `ACTION=="add"` portion because I really only care about when the device is first being added to the system -- that's a perfect time to change the permissions. The rest of the rule matches a USB device with the provided vendor and product IDs. In response, it will change the mode and group of the device node.
Many newer Linux distributions use ModemManager to automatically detect modems when USB serial devices are plugged in by opening the port and doing things with it briefly. This behavior interferes with the SIMM programmer software, so setting the ID\_MM\_DEVICE\_IGNORE environment variable forces ModemManager to skip auto-detection on the port.

BIN
IMG_0587_shrunk_more.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

61
PackagingOnMacOSX.md Normal file
View File

@ -0,0 +1,61 @@
# Introduction #
To start, you need the Qt SDK installed, git for Mac OS X, and mercurial for Mac OS X. This is tested on Mac OS X 10.8 Mountain Lion, but probably works on older versions too.
# Details #
The versions of Qt that are provided are not compiled with i386 support enabled, so compile it yourself with i386 and x86\_64 support. I just do this for packaging purposes so older machines can still run the program. Theoretically it should still function on OS X 10.5, although I don't have the ability to test it.
## Download the Qt 4.8.3 source code: ##
http://releases.qt-project.org/qt4/source/qt-everywhere-opensource-src-4.8.3.tar.gz
## Compile and install Qt: ##
`./configure -opensource -release -no-sql-mysql -nomake examples -nomake demos -no-dbus -no-phonon -no-webkit -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon-backend -no-svg -no-script -no-scripttools -no-declarative -no-declarative-debug -arch x86 -arch x86_64`
Or, if you are doing a 10.4-compatible Universal Binary:
`./configure -opensource -release -no-sql-mysql -nomake examples -nomake demos -no-dbus -no-phonon -no-webkit -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon-backend -no-svg -no-script -no-scripttools -no-declarative -no-declarative-debug -carbon -universal -sdk /Developer/SDKs/MacOSX10.4u.sdk`
`make`
`sudo make install`
## Grab the Mac ROM SIMM control program: ##
`git clone https://code.google.com/p/mac-rom-simm-programmer.software/`
If you're making a universal binary for 10.4, edit ROMSIMMFlasher.pro inside the checked-out directory, remove x86\_64 from macx:CONFIG, and put ppc in its place.
## Grab my custom fork of QextSerialPort: ##
`hg clone https://code.google.com/r/doug-qextserialport-linuxnotifications/`
## Set up Qt Creator ##
* Open Qt Creator (we're going to add the newly-compiled Qt to the list of Qt versions)
* Go to Preferences->Build & Run->Qt Versions->Add
* Because the OS X file chooser will not let you get into /usr/local, you need to cheat to get it to show it...
* Switch to the Finder for a moment, go to Go->Go to Folder... and open up /usr/local
* Drag the Trolltech folder to the file selection window in Qt Creator
* Now navigate to your installed qmake executable (/usr/local/Trolltech/Qt-4.8.3/bin/qmake) and pick it
## Build the project ##
* Open the project (mac-rom-simm-programmer.software/ROMSIMMFlasher.pro) in Qt Creator
* It will ask you to create build configurations. Choose Create Build Configuration: manually
* Only check the Release version of your custom Qt 4.8.3 install
* Go to Build->Build All to build the executable
## Deploy the program ##
Now the program is built, so convert it to a deployable standalone application...
`/usr/local/Trolltech/Qt-4.8.3/bin/macdeployqt ../ROMSIMMFlasher-build-desktop-Qt_4_8_3__Qt-4_8_3__Release/SIMMProgrammer.app/`
## All done ##
Now it's ready for users!
Note: If I ever have to use more of the Qt libraries (such as WebKit), patches available on [this bug report](https://bugreports.qt-project.org/browse/QTBUG-23258) may be necessary.

7
ProjectHome.md Normal file
View File

@ -0,0 +1,7 @@
This project is a bootloader and firmware for a Macintosh ROM SIMM programmer, along with control software for Mac OS X, Windows, and Linux. The ROM SIMM is compatible with the SE/30, all II-series Macs with a 64-pin SIMM socket (should include the IIx, IIcx, IIci, IIfx, and IIsi), and the Quadra 700.
Schematics and PCB layouts for the ROM SIMM and the ROM SIMM programmer are also available for non-commercial use.
No ROM images will be distributed; this is a tool for personal exploration.
![http://wiki.mac-rom-simm-programmer.googlecode.com/git-history/master/IMG_0587_shrunk_more.jpg](http://wiki.mac-rom-simm-programmer.googlecode.com/git-history/master/IMG_0587_shrunk_more.jpg)