To get MonoDevelop: Follow Hawkeye's instructions here (http://wiird.l0nk.org/forum/index.php/topic,4886.msg46051.html#msg46051). (BTW, debugging works ^_^) BTW, you do need to run MonoDevelop as root.
Get the latest libftdi from the repos (is 0.16-2, I think; don't know if we need to build libftdi from the source, which is 0.17-1)
Go to "USBGecko.cs" and add "#define MONO" at the top.
Go to FST.cs and modify the FST constructor so that the lines referencing IconReader are commented out. IconReader comes from a windows dll that we don't have on Linux. In USBGecko::Connect(), there is a call to Disconnect() that needs commented out. You can't disconnect if you aren't connected or you will crash. (I plan on eventually adding directives so that you won't need to comment these things out...)
The current roadblock is in MainForm::CUSBGecko_Click, there's a call to gecko.sendfail() in a while loop that's checking UnknownStatus(). UnknownStatus does not appear to work correctly.
i just tried the above with the sources from r60. when i build the thing and run it, i get the gui popping up for about 2 second and then it dies with this...
[spoiler]
** ERROR **: Structure field of type Byte[] can't be marshalled as LPArray
aborting...
Stacktrace:
at FTDIUSBGecko.USBGecko.Connect () [0x000d0] in /home/j/c/geckoDotNet_60/Gecko dotNET/USBGecko.cs:355
at FTDIUSBGecko.USBGecko.Connect () [0x0003f] in /home/j/c/geckoDotNet_60/Gecko dotNET/USBGecko.cs:323
at GeckoApp.MainForm.CUSBGecko_Click (object,System.EventArgs) [0x00075] in /home/j/c/geckoDotNet_60/Gecko dotNET/MainForm.cs:326
at GeckoApp.MainForm.MainForm_Shown (object,System.EventArgs) [0x00000] in /home/j/c/geckoDotNet_60/Gecko dotNET/MainForm.cs:275
at System.Windows.Forms.Form.OnShown (System.EventArgs) <0x00069>
at System.Windows.Forms.Form.SetVisibleCore (bool) <0x0069d>
at System.Windows.Forms.Control.set_Visible (bool) <0x00032>
at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control.set_Visible (bool) <0xffffffff>
at System.Windows.Forms.Application.RunLoop (bool,System.Windows.Forms.ApplicationContext) <0x002cb>
at System.Windows.Forms.Application.Run (System.Windows.Forms.ApplicationContext) <0x00053>
at System.Windows.Forms.Application.Run (System.Windows.Forms.Form) <0x00037>
at GeckoApp.Program.Main () [0x0000b] in /home/j/c/geckoDotNet_60/Gecko dotNET/Program.cs:17
at (wrapper runtime-invoke) object.runtime_invoke_void (object,intptr,intptr,intptr) <0xffffffff>
Native stacktrace:
/usr/bin/mono [0x47a5ef]
/lib/libpthread.so.0 [0x7f29149e3190]
/lib/libc.so.6(gsignal+0x35) [0x7f29144144b5]
/lib/libc.so.6(abort+0x180) [0x7f2914417f50]
/lib/libglib-2.0.so.0(g_logv+0x53a) [0x7f2915041e0a]
/lib/libglib-2.0.so.0(g_log+0x83) [0x7f2915041ea3]
/usr/bin/mono [0x4ec014]
/usr/bin/mono [0x4eb0be]
/usr/bin/mono [0x4ec949]
/usr/bin/mono [0x4edd11]
/usr/bin/mono [0x4f33aa]
/usr/bin/mono [0x4fbb0a]
/usr/bin/mono [0x4516b9]
/usr/bin/mono [0x41d1a7]
/usr/bin/mono [0x41e897]
/usr/bin/mono [0x4821bd]
[0x405c0168]
Debug info from gdb:
[Thread debugging using libthread_db enabled]
[New Thread 0x7f29089b4910 (LWP 21525)]
[New Thread 0x7f291329a910 (LWP 21521)]
[New Thread 0x7f29154ee910 (LWP 21520)]
0x00007f29149e20cb in read () from /lib/libpthread.so.0
4 Thread 0x7f29154ee910 (LWP 21520) 0x00007f29149e28f1 in nanosleep ()
from /lib/libpthread.so.0
3 Thread 0x7f291329a910 (LWP 21521) 0x00007f29149e13c1 in sem_wait ()
from /lib/libpthread.so.0
2 Thread 0x7f29089b4910 (LWP 21525) 0x00007f29149e28f1 in nanosleep ()
from /lib/libpthread.so.0
* 1 Thread 0x7f29156be730 (LWP 21517) 0x00007f29149e20cb in read ()
from /lib/libpthread.so.0
Thread 4 (Thread 0x7f29154ee910 (LWP 21520)):
#0 0x00007f29149e28f1 in nanosleep () from /lib/libpthread.so.0
#1 0x0000000000553fa2 in ?? ()
#2 0x00007f29149daa04 in start_thread () from /lib/libpthread.so.0
#3 0x00007f29144c07bd in clone () from /lib/libc.so.6
#4 0x0000000000000000 in ?? ()
Thread 3 (Thread 0x7f291329a910 (LWP 21521)):
#0 0x00007f29149e13c1 in sem_wait () from /lib/libpthread.so.0
#1 0x00000000004e32ba in ?? ()
#2 0x000000000050305a in ?? ()
#3 0x000000000056da83 in ?? ()
#4 0x000000000058b6e1 in ?? ()
#5 0x00007f29149daa04 in start_thread () from /lib/libpthread.so.0
#6 0x00007f29144c07bd in clone () from /lib/libc.so.6
#7 0x0000000000000000 in ?? ()
Thread 2 (Thread 0x7f29089b4910 (LWP 21525)):
#0 0x00007f29149e28f1 in nanosleep () from /lib/libpthread.so.0
#1 0x000000000056cb34 in ?? ()
#2 0x00000000005026be in ?? ()
#3 0x00000000417f0fa5 in ?? ()
#4 0x0000000001d60e70 in ?? ()
#5 0x00007f29089b4910 in ?? ()
#6 0x0000000000000000 in ?? ()
Thread 1 (Thread 0x7f29156be730 (LWP 21517)):
#0 0x00007f29149e20cb in read () from /lib/libpthread.so.0
#1 0x000000000047a764 in ?? ()
#2 <signal handler called>
#3 0x00007f29144144b5 in raise () from /lib/libc.so.6
#4 0x00007f2914417f50 in abort () from /lib/libc.so.6
#5 0x00007f2915041e0a in g_logv () from /lib/libglib-2.0.so.0
#6 0x00007f2915041ea3 in g_log () from /lib/libglib-2.0.so.0
#7 0x00000000004ec014 in ?? ()
#8 0x00000000004eb0be in ?? ()
#9 0x00000000004ec949 in ?? ()
#10 0x00000000004edd11 in ?? ()
#11 0x00000000004f33aa in ?? ()
#12 0x00000000004fbb0a in ?? ()
#13 0x00000000004516b9 in ?? ()
#14 0x000000000041d1a7 in ?? ()
#15 0x000000000041e897 in ?? ()
#16 0x00000000004821bd in ?? ()
#17 0x00000000405c0168 in ?? ()
#18 0x00007fffdf428880 in ?? ()
#19 0x000000000050351a in ?? ()
#20 0x00000000405c0173 in ?? ()
#21 0x0000000000000001 in ?? ()
#22 0x00007f290f814af0 in ?? ()
#23 0x08ccabe9157d4c0c in ?? ()
#24 0x00000000406d3100 in ?? ()
#25 0x08ccabe915346afa in ?? ()
#26 0x00007f2912b9bd20 in ?? ()
#27 0x00007f290f814af0 in ?? ()
#28 0x00000000413e1150 in ?? ()
#29 0x08ccabe915346afa in ?? ()
#30 0x08ccabe9157d4c0c in ?? ()
#31 0x08ccabe9157d4c0c in ?? ()
#32 0x0000000000000001 in ?? ()
#33 0x08ccabe915346afa in ?? ()
#34 0x0000000000000001 in ?? ()
#35 0x00007f2912b9bd20 in ?? ()
#36 0x00000000406ce0a0 in ?? ()
#37 0x00007f2912b98f40 in ?? ()
#38 0x00007fffdf4287d0 in ?? ()
#39 0x0000000000000000 in ?? ()
=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================
The application was terminated by a signal: SIGABRT
[/spoiler]
But I'm very happy to at least see the gui. Also, Im glad to see that the mono version has not been forgotten. Keep up the good work.
Not r60...the r# builds are test builds. The # actually corresponds to the current SVN version. The latest source was 0.60.
I remember that error now. In libftdi.cs, there's a struct ftdi_context, with a byte[] member. Change byte[] to IntPtr to solve the "byte[] can't be marshalled as LPArray"
The next time I update sources, it will include modifications that make building mono easier, so you don't need to comment this out and change that etc.
Okay, I don't think the FTDI driver was being initialized correctly. I'm still hunting it down. In the mean time, if someone is feeling adventurous, they could look into setting /etc/udev/rules.d so that we don't need to run MonoDevelop as root.
http://go-mono.com/forums/#nabble-td1587071
lol, whoops...libftdi::Write() is making a call to ftdi_read_data, when it should be ftdi_write_data.
Also, I was wrong about initializing. I thought we might need to call ftdi_init() or ftdi_new() but it looks like ftdi_usb_open() does that for us?
I'm still iffy about that ftdi_context struct. But, now...UnknownStatus() writes to the FTDI device successfully. I confirm that 1 byte was sent. It then tries to read the status from the device, but I get 0 data back, which according to http://www.intra2net.com/en/developer/libftdi/documentation/group__libftdi.html means that there is no data available?
baka! My Wii was off, that's probably why read kept failing...
Anyway, read returns bytes sometimes, but not always. Not sure why.
what exactly is making you run monodevelop as root? i never do. granted, im not getting very good results with this project :) ,but i get the exact same results when i run it normally and as root.
When you eventually get to LFTDI::OpenBySerialNumber(String) (in libtdi.cs), there's a call to ftdi_usb_open. This will fail if you don't run as root.
According to this post (external) (http://n4.nabble.com/Inappropriate-permissions-on-device-tp1587071p1588476.html), who also happens to be using libftdi to talk over USB...
QuoteI was able to change the USB device permissions in my Karmic by adding a rule in /etc/udev/rules.d.
I am now able to run and debug my mono app using MonoDevelop without having to run as root.
If someone could figure out what a rule is, and what line it goes on in that file, that would be helpful... ;D
So if you install libftdi-dev from the repos, there are examples in /usr/share/doc/libftdi-dev/examples and see if you can build simple.c. (remember to use -lftdi switch to link against the library).
I'm able to get Gecko dotNET to read the chipid from the device. I even successfully connected and see the game name string...but I'm not exactly sure which of the things that I did was the correct thing to do, and sometimes it still doesn't work.
WIN!
I can do searches and look around in Memory Viewer! ;D :cool: I haven't gotten vdappc yet, but it's open source so that's not hard, right?
Turns out that ftdi_read_data will return 0...if there's nothing there yet. If you loop on this, you can wait for data to arrive. That fixed the reliability issue.
Now this is a little messy, so I need to clean it up before I release it. And I need to integrate the changes into svn. But it will come some time this weekend for sure, and it will be much easier to build and run.
Quote from: dcx2 on April 17, 2010, 06:53:25 PM
WIN!
I can do searches and look around in Memory Viewer! ;D :cool: I haven't gotten vdappc yet, but it's open source so that's not hard, right?
Turns out that ftdi_read_data will return 0...if there's nothing there yet. If you loop on this, you can wait for data to arrive. That fixed the reliability issue.
Now this is a little messy, so I need to clean it up before I release it. And I need to integrate the changes into svn. But it will come some time this weekend for sure, and it will be much easier to build and run.
Sources please? I can also write up a quick guide on getting libftdi to work on normal user.
Also, just grab the powerpc and vdappc executables from my PyiiASMH app.
EDIT: I can handle packaging too, once we get to that point (managing a PPA, etc.).
here the vdappc i compiled ubuntu 9.10 AMD64. think theres also a mac binary in there, too. But the sources are there if you need those. http://www.multiupload.com/XP34VPAFQD
i tried seeing how far along i could get in a mac, and i got stuck at the libftdi. The only version i saw was kinda old and it took a lot to get it to even install for me. It would tickle me pink if that old lib worked though.
Okay, the sources should be updated on the main thread to be mono-compatible.
In MonoDevelop, the first time you'll need to go to Project -> Gecko dNet Options, then go to the Compiler node, Define Symbols: field, and add ";MONO" to the list, so it looks like
DEBUG;TRACE;MONO
MonoDevelop will then switch out all the Windows code for mono code in all the places it needs switched. Remember to run as root, until we figure out how to make udev rules for the FTDI's VID/PID.
woohoo! it works. for some reason, my monodevelop didnt have the same project settings as you described, so i just put #define MONO in a few files. i have 2 small issues.
1 - to run this, i open a terminal and do "sudo mono geckodotnet.exe". it only finds the disassembler if it is in the current directory of the terminal. meaning that i have to cd to the folder where the exe is before i run it if i want to disassemble and whatnot.
2 - using this changes/removes the /dev/ttyUSB0 where the gecko usually is found. this kills my wiiload abilities and anything else that usually looks for the gecko there. if i unplug the usb calbe and plug it back in, i get /dev/ttyUSB0 back.
aside from these little things, it works great in ubuntu 9.10 amd64. thank you!!
EDIT>>
i found another bug that is a bit more annoying. in the windows version, there is a nice right click menu with things like "convert hex to dec". in the mono version, i get a context menu, but it only has copy, paste, and the other usual things for a right click menu. there is no "convert dec to hex" or anything.
EDIT AGAIN>>
i was wondering about just using /dev/ttyUSB0. in linux "everything is a file". that is the file used for the usb gecko. wiiload writes to that file when it sends data to HBC and it doesnt need to be root. and when i do "cat /dev/ttyUSB0" i can read from that file without root. is there something im missing that would keep geckoDotNet from using that same method? it would allow running without root and also keep it from messing up the existing ttyUSB0.
the sources for wiiload should be in the download of the hackmii installer. if you cant find them, ive got it here.
Quotefor some reason, my monodevelop didnt have the same project settings as you described, so i just put #define MONO in a few files
The MONO symbol is not defined because the "normal" build procedure is for Windows. Rather than defining the symbol in each file, you can define it globally in the project file. I'll try to get a screenshot for you.
Quote1 - to run this, i open a terminal and do "sudo mono geckodotnet.exe". it only finds the disassembler if it is in the current directory of the terminal. meaning that i have to cd to the folder where the exe is before i run it if i want to disassemble and whatnot.
When it launches vdappc, it uses the path "./vdappc". I'll see if I can't tweak this a bit so it finds the directory that contains gecko dotNET.
I don't know why the context menu is missing, but I can look into that (it's important!) Perhaps we should use mono 3.5...there might be improvements that mono 2.0 is missing. I also can't find if monodevelop has a form designer, which makes it so much easier to navigate around the app source code...
I also don't know why it breaks /dev/ttyUSB0, or why it doesn't read/write /dev/ttyUSB0 instead of using libftdi. Most of this was written by Link, and there might be reasons he did it this way. But, hopefully, hawkeye will post a guide on modifying udev rules so we don't need root.
This is how you get to the dialog that changes the project file. There's the menu bar
[spoiler](http://i45.photobucket.com/albums/f60/deadcatx2/WiiRd/projectmenu.png)[/spoiler]
Or the project file's context menu
[spoiler](http://i45.photobucket.com/albums/f60/deadcatx2/WiiRd/projectcontext.png)[/spoiler]
Once there, add ;MONO (highlighted) to the symbols defined, and that should be it. No adding#define's to files.
[spoiler](http://i45.photobucket.com/albums/f60/deadcatx2/WiiRd/symbols.png)[/spoiler]
EDIT: The Debug configuration is for running with a debugger attached. It has no optimizations, which make it harder to find bugs. If you're running from the command line, you should use the Release configuration (and make sure the MONO symbol is defined for it, too)
Awesome, I'll test this out right away.
Quote from: dcx2 on April 19, 2010, 12:09:46 PM
I don't know why the context menu is missing, but I can look into that (it's important!) Perhaps we should use mono 3.5...there might be improvements that mono 2.0 is missing. I also can't find if monodevelop has a form designer, which makes it so much easier to navigate around the app source code...
Don't recall a form designer for WinForms, only for GTK#. If you can help sort out the GUI specific functions, classes, and files; I can work on making a GTK# version.
QuoteI also don't know why it breaks /dev/ttyUSB0, or why it doesn't read/write /dev/ttyUSB0 instead of using libftdi. Most of this was written by Link, and there might be reasons he did it this way. But, hopefully, hawkeye will post a guide on modifying udev rules so we don't need root.
Well, the way I got WiiRd console (should also work w/ Gecko dotNET) was not through udev rules; that seems pretty kernel specific from the quick glance I took at it. The method I used is partially dependent on specific distros, but it should work on most of them. To be honest, it isn't my method (saw it in these forums somewhere), but with some work I should be able to make a general Linux version that will give the normal users permission to read and write to the USB Gecko.
EDIT: Some questions/comments...
1. Does it matter if powerpc-eabi tools are used (e.g. powerpc-eabi-objcopy), or does it have to be powerpc-
gekko? In the case of the latter, I'll have to hunt down both Mac and Linux versions of those respective binaries.
2. I'll have to make a configuration script for GDN (Mono)... so that proper configurations can be made for Mac and Linux versions as far as getting the proper external binary names for each.
I'll post more as I think of them; hopefully I can get a quick guide to allow you to run GDN as a normal user made tonight too.
EDIT (2):
Follow this to be able to run GDN as normal user: http://wiird.l0nk.org/forum/index.php/topic,3127.msg33453.html#msg33453
Did you run as root or follow hawkeye's most recent EDIT2 link?
Few basic questions first: What distro do you run? Do you have libftdi installed?
You can use the libftdi that's in the repositories. I normally use Synaptic Package Manager, but I'm sure hawkeye could drop by with the appropriate apt-get kungfu.
make sure youre running it with root (sudo).
It'll be a bit easier to install GDN once I get a proper ppa set up, but for now, download this: http://www.mediafire.com/file/gmtytkhyqwo/gdnb-mono.tar.bz2
Unfortunately, this is more geared towards Ubuntu, so you'll need knowledge of your own distro if you do not run Ubuntu. Otherwise, these instructions should work for Ubuntu users (tested on Ubuntu 10.04 Lucid Lynx).
First off, download the tarbell linked above. Extract it to a directory of your choice. In this tutorial, I'll use the directory '/home/user/bin/gecko-dotnet', and I'll place gdnb-mono.tar.bz2 in ~/bin. Open up a terminal and enter the following:
cd bin
tar -xjf gdnb-mono.tar.bz2
cd gecko-dotnet
chmod +x configure gecko-dotnet
While my configuration script may not be very good, it should work well enough. Run this and follow the prompts (should just be one sudo authentication):
./configure
Once that's done, you should be all set. Mono is installed by default in GNOME, so that should not be an issue. If you run Jaunty (9.04) or earlier, you will have to build libftdi from source. I can provide instructions for this too if necessary. Other than that, all you'll need to run is this following to execute GDN:
/home/user/bin/gecko-dotnet/gecko-dotnet #Replace user with your account username
If you need anything else, just ask. I think I covered everything.
Hi, im new to linux and pretty new to the whole USB Gecko thing but i can find my way around.
After changing my laptop from XP to Ubuntu 10.04 Lucid, i thought that i could have the same gecko experience... How wrong i was :p
Being restricted to using the terminal is not an option for me as i dont know my way around the linux terminal and using wine to use the windows version will not work for me because of the lack of drivers. Or is there a way around that?
So when i read this i was filled with joy that someone finally did something about this.
Although like i said i am new to this so...
If someone would be so kind as to give me a noob tutorial and crash cource on getting this to run i would be forever greatful.
Please get back to me,
.:Thanks:.
Quote from: memememememe on May 15, 2010, 01:22:39 PM
Being restricted to using the terminal is not an option for me as i dont know my way around the linux terminal...
So bash scripts are out of the question? Even if this was packaged into a .deb, you still might have to run a bash script.
The reason why primarily solutions using the terminal are given is that it is easier and faster. All you have to do (usually) is just copy and paste the commands given to you; just be careful before running them for security reasons, in case the commands are malicious (this (http://ubuntuforums.org/announcement.php?f=39) is a useful read if you are a new Linux user).
Anyway, I'll try to get a deb package for GDN... just haven't had the time to do so yet.
Thanks heaps, i guess ill give the terminal a go seeing as i have to.
But how do i get my gecko to connect?
I'm almost done with the deb package, if I can get post-install scripts to work right, then you shouldn't need to run any bash script.
I'll also upload a standard tarbell of the binaries and the changed sources (my Mono/Linux specific edits) too.
EDIT: I'll upload it tomorrow; just have to test it on a mint install (probably a Live CD of Lucid). No bash script is required, all you should need to do is connect your USB gecko to your computer and run the deb installer.
For those with a *.rpm based distro, I'll get a tarbell of binaries and sources uploaded too, although it may not be tomorrow.
EDIT2: I had a working deb, but I have to reconfigure the program to put the config files in a different location before I can distribute the deb.
Here's the deb package: gecko-dotnet_0.61-4.deb (http://ubuntuone.com/p/4My/) (1.2 MiB)
Instructions:
*Make sure you have your USB Gecko connected to your computer when you install this.
1. Download the file to your Desktop (or another location), then double click the deb file (this should launch GDebi).
2. Review any details you may want before installing, then click 'Install Package' and type in your password.
3. Click the "show terminal button" on the installation dialog (Progress bar, etc.), click in the terminal screen, read the statement and then press enter. Failure to do this step will leave GDebi idle (it won't install Gecko dotNET).
4. Sit back for a minute or two for the install to finish.
OR you can install using the terminal. Here's a set of commands that should work:
cd $HOME/Desktop
wget -c "http://ubuntuone.com/p/4My/" -O gecko-dotnet_0.61-4.deb
sudo dpkg -i gecko-dotnet_0.61-4.deb
Just press enter when it asks, then it should install just as fine as GDebi would.
When the install is complete, you can find the menu entry in Applications -> Programming (under the name of "Gecko dotNET") or by running the command "gecko-dotnet".
All config files should be placed in "/home/[yourusername]/.gecko-dotnet".
This should hopefully work without problems; let me know if it doesn't (the only issue might occur with dependencies). Also, this was tested on Ubuntu 10.04 Lucid Lynx only, and will probably only work on this version (due to older versions of libftdi that were shipped in previous versions).
Enjoy!
EDIT: I just realized I forgot something important; run this command in a terminal:
sudo ln -s /usr/lib/libftdi.so.1 /usr/lib/libftdi.so
This creates a necessary symbolic link so that Gecko dotNET can access libftdi (otherwise GDN is useless). I'll try to include this in the next revision of the deb package.
i tried to try the deb, but its only for i386.
THANKYOU SOOO MUCH,
Ill try it now,
rep 4 u!!
As a FYI, that package doesn't work on a default install; I missed a package in the dependencies. I'll try to make a new one tonight.
Still kinda new to deb packaging. :p
@hawkeye2777 What's that for/do?
Quote from: James0x57 on May 19, 2010, 11:37:49 PM
@hawkeye2777 What's that for/do?
The deb? Look here (http://en.wikipedia.org/wiki/Deb_(file_format)) for info on what it is. Pretty much, it'll make installation much easier on Ubuntu.
Also, I'll need to look into udev rules too; my other method doesn't seem to work. :/
Quote from: giantpune on May 19, 2010, 07:54:55 AM
i tried to try the deb, but its only for i386.
Not sure if the program will work on x64, but try this:
sudo dpkg -i --force-architecture gecko-dotnet_0.61-7.debAnyway, here's a new deb; comes with a udev rule for the USBGecko and should *hopefully* work just by installing it. Disregard my previous instructions, just install the package like you normally would (GDebi or dpkg).
Download: gecko-dotnet_0.61-7.deb (http://ubuntuone.com/p/4up/)
Let me know if I messed up again, because it seems likely with the 7 package revisions. :P
EDIT: Tarballs up too (binaries and the few changes I made in the sources).
gecko-dotnet_0.61_bin.tar.bz2 (http://ubuntuone.com/p/4us/)
gecko-dotnet_0.61_src.tar.bz2 (http://ubuntuone.com/p/4ut/)
sorry to be a pain but there are a few thing that are bothering me.
When i open it it tells me that it cant connect even if i am the root user
secondly am using a eee pc for this so you can imagine the screen is quite small (10 inches i think) so not all the features will fit
any way of fixing these?
Quote from: memememememe on May 27, 2010, 03:31:07 AM
When i open it it tells me that it cant connect even if i am the root user
Could you open up a terminal and post the output of this command?:
lsusbMake sure the USB Gecko is connected to your computer too.
Quote from: memememememesecondly am using a eee pc for this so you can imagine the screen is quite small (10 inches i think) so not all the features will fit
I think the resolution of the GUI itself is 571x559 (px). Unfortunately, I didn't create it, so I can't help you here; sorry.
The minimum resolution according to the source should be something like 600 x 450.
What resolution is your netbook? I don't know if it will be possible to fit everything into a smaller screen, however I might be able to add scroll bars so that you can at least reach all the controls.
Quote from: dcx2 on May 28, 2010, 03:16:09 AM
The minimum resolution according to the source should be something like 600 x 450.
I'm not sure if it's how Mono renders Winforms, but mine has to be at 600x560 for all buttons to display.
[spoiler](http://i49.tinypic.com/2d9rbt5.jpg)[/spoiler]
Maybe it's a GNOME thing, either that or it's just how Mono displays Winforms.
I think this is the first time a console hacking tool has worked and had a sexy gui outside windows or mac. =)
Btw, Nice wallpaper. lol
"Stanley Cup Final 2010 NHL"
Note: the udev rule does not appear to work. I just found this out today after Ubuntu didn't recognize the USB Gecko through lsusb (the kernel said it connected though... will have to look in to this). So yeah, the deb is crap again. Just grab the binary tarball and run it as root if you want to avoid changing usb permissions.
I'll try to fix this with the next source release of GDN.
i just took a stab at getting this to talk to the usb gecko without using the FTDI package. I managed to get it to work well enough to dump the game ID, and the disassembler tab works perfectly. It doesnt need to be run as root. And it doesnt jack up the usb gecko for other programs. However, dumping the memory while searching for stuff doesnt work out too hot ( yet ). I think it is just because i didnt bother to buffer anything, so reading a quick 8 or 16 bytes works fine, but when she tries to read large chunks, she just reads whatever has been sent already and then decides she is done.
But my c# is really poor, so maybe somebody else knows the proper way to buffer it. The method I chose is using this little guy http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx . i just create a serial port using the name of the $WIILOAD environmental variable, which happens to be "/dev/ttyUSB0". then i open it and i can read/write/close it. so, if somebody knows a way to properly read bigger chunks of data from the serial port, then i think this might be the way to go.
EDIT...
ok, i managed to get her working. She appears to work fine... dumping, poking, writing, screenshots, breakpoints all seem to work. Im using ubuntu 9.10, and i have just hardcoded the path to my gecko in there. So, if yours isnt "/dev/ttyUSB0", youll have to change it. again, my c# sucks. but this worked well enough for me like she is.
modified from r91 source
http://pastie.org/1194986
also in notepad.cs, she needs some "#if MONO" and make different paths. There are like 3 different times it uses windows path separators ( "\\" ). change those to "/".
There is now just an issue of it loading the previous search history. sometimes it doesnt seem to open the zip file or something, so after you "refine" or "undo" a search, there is never any previous history to compare to. I think this is probably dues to path name or something.
Once I find some spare time, I should try and submit some patches that I've made to make GDN a bit more usable with Mono (such as those path separators). Afterwards, I should try and get the udev stuff working properly.
I'm not exactly sure what you did giantpune, but my gecko isn't "mounted" at /dev/ttyUSB0. Where mine is located, you have to change the permissions of it for other users to read/write (as root). So either way, I still have to use root to use GDN as a normal user. My goal is to find a simple way (using udev rules) to try and make it so the only root actions you will need to perform is the install of a deb, etc.
So far, I see we have an Ubuntu 10.04 user (me) and an Ubuntu 9.10 user (giantpune). Is there anyone else? The more testers we have, the better. It'd be nice to get some users from other distros as well. I wish I could use more; the issue for me is my ancient computer.
i didnt have to do anything to get the usb gecko to show up at /dev/ttyUSB0. This is the default spot for it to show up. Using ubuntu 9.10, and 10.04. This is the default location in wiiload, so I believe it must be true for other distros.
I did have trouble with this at first on ubuntu 9.10, as they have already installed a package called brltty or something like that. It has something to do with braille. This package takes control of the usb gecko whenever it is connected and does something with it. And for whatever reason, it doesnt show up in ttyUSB0. But as I can see, and my monitor doesnt output in braille anyways, I just removed that package, it stopped stealing the gecko, and now it shows up at a tty device by simply plugging it in.
Quote from: giantpune on October 14, 2010, 01:14:58 AM
i didnt have to do anything to get the usb gecko to show up at /dev/ttyUSB0. This is the default spot for it to show up. Using ubuntu 9.10, and 10.04. This is the default location in wiiload, so I believe it must be true for other distros.
Must only be true for you then; I don't even have a /dev/ttyUSB0 listed. Also, it might be the same for Debian based distros, but I'm not sure if the same would hold true for Red Hat based distros, for example.
check that you dont have the brltty package installed. because if you do, you wont get /dev/ttyUSB0 to pop up when you insert the usbgecko.
I think I found a way I can boot from USB on my ancient computer... so I might be able to boot Live USB's of other Linux distros easily. Should be easier to make and test a RPM package too.
Also:
hawkeye2777@Powerhawk:~$ apt-cache search britty
hawkeye2777@Powerhawk:~$
No result for britty. (Lucid)
you probably didnt find it because you mis-spelled it. brltty. its installed by default in lucid.
brltty, brltty-X11 4.1-2ubuntu6
Oooh, I get it. BRaiLle TTY. That's where the L comes from.
Wow...that makes a lot more sense now.
Ah, I see. The i and l look similar on my box (must be my font or something).
Well, with some patches, the latest SVN of Gecko dotNET works fine from my testings. Then again, I'm not really an active hacker nor have I used the program much, so I can't say for sure that it works without too many extra bugs on the Mono side.
Also: I still don't have /dev/ttyUSB0 on my box. It sounds like a hardware specific thing, so I'm afraid your workaround seems to only work for you. I'm not sure if using /dev/bus/usb/xxx/yyy (xxx = bus number, yyy = device number) would work in place, but then you'd have to change it each time you plug in the USB Gecko (it changes everytime for me).
So: I'll study up on udev rules and try to make one that works for Ubuntu and hopefully other distros as well. That'll solve the whole root thing.
Is there anything else about running this on Mono that needs to be addressed?