Unfortunately no one can be told what fun_plug is - you have to see it for yourself.
You are not logged in.
has anyone managed to compile a working linux (or other) kernel for this device? I tried doing this several months ago and never really got anywhere, probably because I was using too new a toolchain version, or I just suck at this . the furthest I got was a custom initrd image for testing (basic busybox system with networking, serial console, OH, and pivot_root to a partition on the internal drive )
I'm going to try again later using the toolchain source provided by sala, maybe that will make a difference, assuming I can find my usb-serial controller (only device I have with 3.3v ttl)
Offline
You are trying to compile D-link GPL kernel or kernel from kernel.org?
If you are working with d-link one then I can provide pre-compiled toolchain with uclibc 0.9.24, gcc 2.95.4 and binutils 2.14.90.
With this configuration I was able to compile D-Link GPL kernel.
Also do you mind posting your work that you have done with initrd?
Offline
I will likely start from the d-link kernel, but I would like to move to a more current one once I get it working. did the kernel you compiled boot properly?
a precompiled toolchain would be appreciated, as would instructions on building one using the same steps you did. if you want to set up some kind of direct transfer you can find me at various times on irc.freenode.net, as kevin`, in #openwrt. I could provide an ftp or shell account if that would be efficient
I'll post my work with an initrd once I find my serial controller again.. it really needs a bit of tweaking to have any non-testing use
do you know where I can get the original source for the (odd, pre release) version of the kernel there's was based on? it would help in generating a patchset of their changes
Offline
Here's a link to pre-compiled toolchain: http://the.planet.ee/toolchain.tar.bz2
I just compiled kernel, but I have not tested it.
You probable need to fix some symlinks after you extract the toolchain archive.
Then set a proper CROSS_COMPILE variable to Makefile, execute cv.sh, make menuconfig and make
Also look for static file paths at d-link gpl kernel, there are lots of these!
There where never released full sources to any -pre released kernels, only patches are available.
Here is 2.4.20 and patchset for making it to 2.4.21-pre4:
http://kernel.org/pub/linux/kernel/v2.4 … 20.tar.bz2
http://kernel.org/pub/linux/kernel/v2.4 … 1-pre4.bz2
Offline
here's the ramdisk image i'm currently using on my device, for the curious (I just copied this from the device itself, and gzipped it, so it's not in u-boot format)
all this will give you is a busybox shell on the serial console, along with a couple of tools. although there is networking support, for the ethernet (if not wireless.. I have the minipci wireless card in my laptop), the interface starts configured down and no daemons are started by default, so don't use this unless you have a serial console
http://kwzs.be/~kevin/ram0.img.gz
I couldn't find my usb-serial controller so I built a new one.. soldering wires to smd chips is NOT easy - the hot-glue coating is to prevent the hair-thin wires from shifting out of their intricate placement (on the plus side, I didn't have to order any parts online to make this, I don't like doing that)
http://kwzs.be/~kevin/P1010089.JPG - yay for pictures
http://cgi.ebay.com/DYNEX-DX-UBDB9-USB- … otohosting (random link that has a picture) - the hot-glue coated device shown in the picture is one of these, if anyone wants to follow my path of darkness (dynex dx-ubdb9 usb serial cable), the main chip inside (which I soldered to) is a pl-2303HX, supported in linux and windows, specs I used available here: http://kwzs.be/~kevin/ds_pl2303_v16.pdf
Offline
Having compiled the toolchain, I'm wondering if anybody here has looked at the kernel sources.
If anybody has, can you tell me how complete the sources are? If as I assume, the sources are not complete, are there binaries for the missing pieces? Has anybody built a working kernel image?
Offline
Kernel image is compilable, no sources is missing as far as I have seen. Whats missing is ralink wifi drivers, but you don't need them to get kernel compiled.
Offline
Ok, I'm confused. I have built the toolchain and got my serial console working. Now I'm trying to compile the kernel.
I add the bin directory containing powerpc-linux-gcc to PATH and then as per the README
make menuconfig
make clean;make dep;make pImage
I get a bunch of error messages:
powerpc-linux-gcc -D__KERNEL__ -I/home/beattie/dsmg600_B_GPL/ppclinux/include -W
all -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -I/home/beattie/dsmg600_B_GPL/ppclinux/arch/ppc -fsigned-char -msoft-float -pipe -ffixed-r2 -Wno-uninitialized -mmultiple -mstring -DKBUILD_BASENAME=main -c -o init/main.o init/main.c
In file included from /home/beattie/dsmg600_B_GPL/ppclinux/include/linux/wait.h:13,
from /home/beattie/dsmg600_B_GPL/ppclinux/include/linux/fs.h:12,
from /home/beattie/dsmg600_B_GPL/ppclinux/include/linux/capability.h:17,
from /home/beattie/dsmg600_B_GPL/ppclinux/include/linux/binfmts.h:5,
from /home/beattie/dsmg600_B_GPL/ppclinux/include/linux/sched.h:9,
from /home/beattie/dsmg600_B_GPL/ppclinux/include/linux/mm.h:4,
from /home/beattie/dsmg600_B_GPL/ppclinux/include/linux/slab.h:14,
from /home/beattie/dsmg600_B_GPL/ppclinux/include/linux/proc_fs.h:5,
from init/main.c:15:
/home/beattie/dsmg600_B_GPL/ppclinux/include/linux/kernel.h:74: warning: conflicting types for built-in function `vsprintf'
/home/beattie/dsmg600_B_GPL/ppclinux/include/linux/kernel.h:77: warning: conflicting types for built-in function `vsnprintf'
/home/beattie/dsmg600_B_GPL/ppclinux/include/linux/kernel.h:81: warning: conflicting types for built-in function `vsscanf'
/home/beattie/dsmg600_B_GPL/ppclinux/include/asm/unistd.h: In function `init':
/home/beattie/dsmg600_B_GPL/ppclinux/include/asm/unistd.h:439: error: asm-specifier for variable `__sc_4' conflicts with asm clobber list
... etc. etc.
I know there must be a step I'm missing, anybody got a clue
Offline
Beattie, did you compile toolchain to have uclibc 0.9.24, gcc 2.95.4 and binutils 2.14.90? If not then you should because if you want to use gcc 3.x you need to do some kernel source patching.
Offline
OK I was following the README, I guess the README is not very accurate, and I've not built a 2.4 kernel in a while.
I tried using the precompiled compiler just to speed thing up, but I guess I need to do so symlinking or more changes to my PATH.
In the mean time since I really prefer to buld everything from source is there a copy of the makefile you used to build the compiler? I notice that some changes are required for gcc-2.95.
I have some pictures of the serial port and jtag connector mods if anybody is interested.
Error messages:
powerpc-linux-gcc -D__KERNEL__ -I/home/beattie/dsm-g600/ppclinux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -I/home/beattie/dsm-g600/ppclinux/arch/ppc -fsigned-char -msoft-float -pipe -ffixed-r2 -Wno-uninitialized -mmultiple -mstring -DKBUILD_BASENAME=main -c -o init/main.o init/main.c
powerpc-linux-gcc: installation problem, cannot exec `cpp0': No such file or directory
powerpc-linux-gcc: installation problem, cannot exec `cc1': No such file or directory
as: unrecognized option `-mppc'
make: *** [init/main.o] Error 1
Offline
beattie wrote:
In the mean time since I really prefer to buld everything from source is there a copy of the makefile you used to build the compiler?
There is make script for 2.95, but you need to go trough hell to make it compilable. As I remember you need to replace uclibc-snapshot with 0.9.24 + some minor stuff I cant remember right now. You can buzz me if you run into problems.
ftp://ftp.dlink.com/GPL/dsmg600_reB/ucl … 609.tar.gz
As of kernel compiling error message, did you set full path to your cross compiler eg. /home/users/cross/bin/powerpc-linux-uclibc-
And also look for broken symlinks if you use pre-compiled toolchain.
beattie wrote:
I have some pictures of the serial port and jtag connector mods if anybody is interested.
It would be really nice if you fill out wiki page with this information
http://dns323.kood.org/dsmg600/howto:serial_connector
Last edited by sala (2006-12-04 08:42:55)
Offline
Ok I'm making progress as cronicled on http://www.beattie-home.net/beattie/DSM-G600/ (when I have the kinks worked out I'll add what I've learned to the wiki [I don't know home to add picture to the wiki so I used links to my webpage for the serial stuff]) (don't you just love nested parentheticals?)
One question I have or would solve is how others have handled the compiler problem. The kernel needs gcc-2.95, the user level stuff from D-Link smmes to be comiled with gcc-3.3. Now there is no problem with that mixing, but I'm not sure how to mix and match. I can install both compilers, but one has to be linked to powerpc-linuc-gcc. I have not looked at the makfiles in detail to see for instance if I can tell the kernel makefiles to use gcc and powerpc-linux-gcc-2.95, for instance. I could also install the two compilers in different locations and use different $PATH settings (but that is a pain in the a**).
If anybody has a solution they have used or even just thought of, I'd be glad to hear it.
BTW I built gcc-2.95 from scratch with just a few patches, but I need to build makeimage and friends to fully test it out.
Offline
beattie wrote:
but I need to build makeimage and friends to fully test it out.
Here there are compiled for i686 (see attachement)
they works but i've got a "no more space left on device" when i use it because of img2srec
Offline
Well I've got a kernel, now I need to research on loading a kernel. Also on extracting the kernel from the firmware incase I need a working kernel to go back to. Does anybody have experinece with this, or pointers to information that might be useful?
Offline
I don't know about u-boot. Howver, a few years back when I had a chance to work on a project that used RedBoot. I suspect u-boot has similar functions to RedBoot. With RedBoot, you could transfer the image to your PC using zmodem or tftp.
Looks like you should head off to reading the u-boot document.
--
Quang
Offline
Cute, I had planned to and have, however I also used the resources found through Google and in the posts of others and have discovered information that is not in the u-boot documentation. I'm not asking to be spoon fed, but it woul dbe stupid and arrogant of me to ignore information other might have. So next time, if you don't have something helpful to say just ...
Offline
Sorry about that. Here are some links for U-Boot:
http://linuxdevices.com/articles/AT5085702347.html
http://sourceforge.net/projects/u-boot/
http://www.denx.de/wiki/bin/view/DULG/Manual
--
Quang
Offline
SUCCESS!!!
I have built, uploaded and booted a kernel, and it actually works!
I just need to write up the last steps, and then I'll look into writting a wiki page.
BTW it takes about 20minutes to upload a kernel.
Offline
That's a wonderful news. I can't wait to check it out. Good job beattie.
Offline
Kernel build http://dns323.kood.org/dsmg600/howto:kernel_build
Kernel upload http://dns323.kood.org/dsmg600/howto:kernel_upload
Let me know how it works for you.
Offline
Fantastic. Now, I'm going to have to order the RS232 component or I can have the serial connection.
In the how-to, you mention that it takes 20 minutes to transfer the image. I notice that your instruction includes a line that sets the baud rate to 9600. Have you tried setting it 11520? That's 12 times larger than 9600. So, it should take about 1.5 minutes to transfer instead of 20 minutes then.
--
Quang
Offline
Beattie,
Looks like U-boot has a command similar to that of RedBoot. You can use the command "ftpboot "to boot the image remotely from PC running Linux or Windows. On Linux make sure you have tftpd running with firewall turned off. Put the image(s) in the the tftp directory, like /tftpboot.
Then from the u-boot prompt, type: ftpboot <pc-ip-address> image-to-boot
It's always a good idea to make sure the image is bootable before flashing it.
--
Quang
Offline
qn1234, you should check out beattie's webpage linked under his picture. He lays out reasons there why the baud change and ftpboot aren't likely to work.
This is exciting stuff. I wish I understood more of it so that I could contribute, but at least I'm learning fast.
Offline
The u-boot provided on the dsm g600 has a limited and non-standard set of commands implemented, You can be certain that I would have found something as simple as tftpboot if it were available. As far as I can tell this u-boot only supports 9600 baud, you could set the workstation's serial port tp 115200, but then u-boot would not recognize what you typed.
The only way to recover a unit that has been bricked due to a bad kernel or filesystem is through the serial port which is why I developed the method for loading through the serial port before building new firmware loads.
I will probably also work on building a more feature-filled u-boot, but last I heard, there were no u-boot drivers for the DSM's NIC, or IDE device, I believe that the DSM's USB is supported by the standard u-boot but I need a JTAG interface before I try a new u-boot (to recover from a bricked u-boot).
Oh yeah, there is only one way to know if a kernel is bootable...boot it.
Last edited by beattie (2006-12-10 07:42:44)
Offline