PDA

Bekijk de volledige versie : Updating the Asus Kernel



tscoreninja
02-03-2005, 11:50
Dear Forum,

First a quick introduction. Since yesterday, I am the proud owner of a WL-500g deluxe and a WL-100g deluxe. While I do not know how much time I will be able to spend on this, I do have some Linux kernel programming experience. One particular reason for buying this device was the USB2.0 port, plus the ability to tinker with the source of the firmware.
Has anyone tried to update the kernel from 2.4.20 to a newer 2.4 kernel? If not, would there be interest to apply such an update to Olegs Firmware? There are most likely a couple of security fixes which should be applied. My personal motivation is as follows: I own a Creative Muvo2. However, the Website http://linux.highsphere.net/howtos/muvo2.php (currently offline, Google Cache here (http://64.233.183.104/search?q=cache:kZ8LoqBUfdUJ:linux.highsphere.net/howtos/muvo2.php+muvo2+linux&hl=en)) seems to indicate that there are problems mounting the Muvo2 as a USB storage device on Kernels < 2.4.26. I have not checked this yet, but if so, I will try to fix this ASAP.

Has anybody looked into this? Any advice? Any things to look out for in particular?

Two possible approaches:
1. just try to replace the kernel with the latest one from www.linux-mips.org

2. Understand the changes. For this, the following steps would be required:
-diff kernel from Asus against the 2.4.20 from www.linux-mips.org, identify important changes
-diff kernel 2.4.20 against latest from linux-mips
-merge changes from Asus/Broadcom into linux-mips latest

Greetings,
TSCoreNinja

Oleg
02-03-2005, 12:04
openwrt project has ported 2.4.29 kernel and they're testing this now.

mctiew
02-03-2005, 12:36
Has anyone tried to update the kernel from 2.4.20 to a newer 2.4 kernel? If not, would there be interest to apply such an update to Olegs Firmware?


Yes, I am VERY interested.



Has anybody looked into this? Any advice? Any things to look out for in particular?

Two possible approaches:
1. just try to replace the kernel with the latest one from www.linux-mips.org

2. Understand the changes. For this, the following steps would be required:
-diff kernel from Asus against the 2.4.20 from www.linux-mips.org, identify important changes
-diff kernel 2.4.20 against latest from linux-mips
-merge changes from Asus/Broadcom into linux-mips latest


I think we should do at least No2 if not both.

But I think I would rather go straight to 2.6 kernel. It's fair easier to compile 2.6 kernel.

Cheers.

Biertrinker
02-03-2005, 15:44
Hi,

i am playing a liddle bit with the kernel sources at the moment. I think changing to kernel 2.6 would be definitly interesting, but this looks hard to me, because auf the broadcom changes. Or is there a 2.6 version with this components allready in it?

Biertrinker

tscoreninja
02-03-2005, 15:45
@mctiew,

there are a few reasons why I do not want to go to 2.6 immediately. Once the kernel has been updated, it would be a fun project nevertheless.

1. no major API changes. Once I have understood the alterations made by Broadcom to the linux-mips.org CVS tree, an update to 2.4.latest will be fairly easy, and reasonably quick to do, while 2.6 might mean changes to Broadcoms code

2. no guarantee that 2.6 will work even if porting has been done correctly, as the cross-compiler might break

3. 2.6 might turn out to be bigger/more resource hungry, and thus no good in real life

I have had a look at the sources already:
-USB seems to be from Linux 2.4.25
-I have extracted a patch to add Broadcom bcm4710 PCMCIA driver to stock sources which applies to both 2.4.20 and 2.4.28 (see attachment, if anyone is interested, apply with "bzcat pcmcia.diff.bz | patch -p1" if current path is linux_2_4_2X directory)
Cheers,
TSCoreNinja

mctiew
03-03-2005, 01:29
I have had a look at the sources already:
-USB seems to be from Linux 2.4.25
-I have extracted a patch to add Broadcom bcm4710 PCMCIA driver to stock sources which applies to both 2.4.20 and 2.4.28 (see attachment, if anyone is interested, apply with "bzcat pcmcia.diff.bz | patch -p1" if current path is linux_2_4_2X directory)


Good work. Wonder if it is comprehensive ?

As a sideline, in a separate thread, I was talking about this capability to do a kexec from a booted kernel, I wonder if that make sense for you.

Because everytime we change the kernel, there is always this fear that we will end up a dead system since we do not have to capability to burn a new firmware when the system is dead. This will greatly dispair to effort to derive at a new kernel. So I was think it at all patch the current 2.4.20 kernel to have this kexec capabilities. Once this is achieve, everytime when we compiled a new kernel, we just test boot it within the current 2.4.20 kernel.

The kexec capability is consisting of two parts, the kernel mode portion and the userspace portion. So I am imagining even if the kernel mode portion is not working, as long as the userspace portion is not triggering it, the system will still be stable enough to allow further work ( such as revert the system back ).

Is this able to allow more freedom to future growth ?

Cheers

tomilius
03-03-2005, 03:34
Um... why not wait for new sources to come from ASUS, at least for a few weeks? I guess it's not absolutely necessary to wait as it can just be redone with new sources, but I think the WPA-PSK issues were solved in the latest betas (they were for me) and it would be nice to have them so solved in new firmware. Some of us resort to WEP and others restrict themselves to 1.8.1.7-3 because of this issue--I'd say it's pretty big and important.

mctiew
03-03-2005, 03:50
Um... why not wait for new sources to come from ASUS, at least for a few weeks?

You think it will be available in a few weeks ? Also, the idea of building on newer kernel, one of the major goal is to establish "freedom" over dependency on Asus/broadcom. That will allow one to upgrade without waiting for asus/broadcom in the future.

Cheers.

Oleg
03-03-2005, 07:51
Guys, have you read my post? As I wrote above 2.4.29 ALREADY ported and running. Why do you still trying to do this yourself???
And the 1.9.2.7 instability is most likely caused by wireless module which is binary only anyway.

tscoreninja
03-03-2005, 13:07
Just to follow up on Olegs comment. There is an experimental buildroot of openwrt available at:
http://openwrt.org/downloads/experimental.tar.bz2

This contains the following kernel patches:


000-linux-mips-cvs.bz2
001-Makefile.bz2
002-Rules_make.bz2
003-arch_mips_Makefile.bz2
004-arch_mips_brcm-boards.bz2
005-arch_mips_config-shared_in.bz2
006-arch_mips_defconfig-bcm947xx.bz2
007-arch_mips_kernel_cpu-probe_c.bz2
009-arch_mips_kernel_head_S.bz2
010-arch_mips_kernel_proc_c.bz2
011-arch_mips_kernel_setup_c.bz2
012-arch_mips_kernel_traps_c.bz2
013-arch_mips_mm_Makefile.bz2
014-arch_mips_mm_c-bcm4710_c.bz2
015-arch_mips_mm_loadmmu_c.bz2
016-arch_mips_mm_tlbex-r4k_S.bz2
017-arch_mips_pci_Makefile.bz2
018_drivers_char_mem_c.bz2
019-drivers_char_serial_c.bz2
020-drivers_mtd-jumbo.bz2
021-drivers_net_Config_in-hnd.bz2
022-drivers_net_Makefile.bz2
023-drivers_net_et-hnd.bz2
025-drivers_net_hnd-hnd.bz2
026-drivers_net_wl-hnd.bz2
027-drivers_net_port_based_qos.bz2
028-drivers_pcmcia_jumbo.bz2
029-include_asm-mips_asm_h.bz2
030-include_asm-mips_bcm4710_cache_h.bz2
031-include_asm-mips_bootinfo_h.bz2
032-include_asm-mips_cache_h.bz2
033-include_asm-mips_cpu_h.bz2
034-include_asm-mips_mipsreg_h.bz2
035-include_asm-mips_r4kcache_h.bz2
036-include_asm-mips_serial_h.bz2
037-init_do_mounts_c.bz2
100-gcc3-mtune.bz2
101-arch_mips_brcm-boards_bcm947xx_compressed.bz2
103-net_core_dev-performance.bz2
104-drivers_net_diag-mbm.bz2
200-include_linux_netdevice_h-wlfix.bz2
201-net_core_Makefile-wlfix.bz2
202-net_sched_sch_generic_c-wlfix.bz2
203-include_net_pkt_sched_h-wlfix.bz2
204-net_sched_sch_api_c-wlfix.bz2
205-net_core_dev_c-wlfix.bz2
206-include_linux_skbuff_h-wlfix.bz2
300-squashfs2.1.bz2
301-jffs-compression.bz2
302-ebtables.bz2
400-bcm947xx-openwrt.bz2


On the naming of individual patches:


# patches are sorted by numbers
# 000 patch between linux-2.4.29 and linux-mips-cvs
# 0xx linksys patches
# 1xx OpenWRT patches (diag,compressed,..)
# 2xx fixes for 2.4.29 integration (wl driver)
# 3xx kernel feature patches (squashfs,jffs2 compression,..)
# 4xx patches needed to integrate feature patches

Whoever is still interested, this is the place to start.
Cheers,
TSCoreNinja

acoul
08-03-2005, 14:30
Just to follow up on Olegs comment. There is an experimental buildroot of openwrt available at:
http://openwrt.org/downloads/experimental.tar.bz2

Whoever is still interested, this is the place to start.
Cheers,
TSCoreNinja

Greetings,

I have compiled the code and flashed it to a wl-500g but I was unable to get a telnet login. Pings have a 30% packet loss while neither telnet or ssh ports respond. I tried to see if there are any special flags for compiling for the asus wl-500g but I found none. Has anyone compiled and successfully installed the experimental openwrt buildroot? It looks very promising and one can customize the flash image to every little detail... !! Personally for example, I am looking for aironet mini PCI and snmpd support.

Edit: Actually I found this thread and will try this method and see if it works: http://wl500g.info/showthread.php?p=2205

acoul
09-03-2005, 07:08
No luck so far... still trying. Any pointers/directions for making a proper flash for the asus wl-500g from the openwrt experimental buildroot will be highly appreciated

mctiew
09-03-2005, 10:02
No luck so far... still trying. Any pointers/directions for making a proper flash for the asus wl-500g from the openwrt experimental buildroot will be highly appreciated

I would say most likely the kernel could not find proper drivers to handle the file system. You did not mention you use which firmware as the base, for example if you are using 3c, you will have trouble because the kernel does not contain lzma decompression code, while the file system is lzma-squashed. Other combination will also be problematic.

Therefore, you should match the file system drivers accordingly.

Cheers.

acoul
09-03-2005, 14:10
The nice thing about the experimental buildroot package from openwrt project is that it gets all the needed components and patches automatically and compiles the image for you in a snap. I was not able to test if the image works ok on a wrt since the two ones I own are on production links but I had no luck with the wl-500g. So at the moment I am compiling the GPL-1.9.2.7 from asus using as firmware the wl500g-1.9.2.7-3c. I want to thank you for your feedback which is always nice to have :-)

mctiew
09-03-2005, 22:28
The nice thing about the experimental buildroot package from openwrt project is that it gets all the needed components and patches automatically and compiles the image for you in a snap.


Seemingly. Seemingly to snap in is the word you have to qualify.



I was not able to test if the image works ok on a wrt since the two ones I own are on production links but I had no luck with the wl-500g. So at the moment I am compiling the GPL-1.9.2.7 from asus using as firmware the wl500g-1.9.2.7-3c. I want to thank you for your feedback which is always nice to have :-)

So it comfirms my suspiscion. I would most doubtful that the lzma patches from Oleg will snap in nicely with other patches in the WRT.

Cheers

acoul
10-03-2005, 07:16
Ok here is some more feedback on the quest of flashing a customized experimental openwrt .trx. I was able to flash the precompiled experimental .trx (dated March 03, 2005) from the downloads directory and had a nice working openwrt in the wl-500g, but had no success after flashing a custom cross-compiled .trx - no telnet, the thing looked like it was in a rebooting loop mode. At this very moment I am cross-compiling on a different platform (AMD vs Intel) on a Gentoo - 2.6 kernel system. Has anyone successfully cross-compiled a custom image and got a working result? Basicly I am trying to include cisco aironet and hostap/prism modules in the kernel... the whole proccess though takes forever to complete !!