Author Topic: Netwalker's Kernel  (Read 9770 times)

Sleep_Walker

  • Newbie
  • *
  • Posts: 17
    • View Profile
    • http://sleepwalker.hackndev.com
Netwalker's Kernel
« on: June 11, 2010, 03:35:56 pm »
Hi,

as I had Hackweek 5 at work, I had a look into Netwalker's kernel a bit. My aim was to port latest Netwalker's coe which can be found in Ubuntu 2.6.28 araneo kernel sources to latest 2.6.31 Freescale kernel. I'm not telling I'm kernel  expert but I gave a try. At the end of this week I abandoned this idea

I have never seen such mess. As some of you alrerady know, there is no machine ID dedicated to Netwalker. There is used one for Babbage board which is quite (but not completely) similar. Unfortunately this machine ID is used in RedBoot - the Netwalker's bootloader, so to do things correctly NOR flash where RedBoot is located need to be altered and you can brick your device when this is not done correctly. Great! When this is done, change in current kernel is quite cosmetic.

Unfortuinately - this is the lesser problem. Bigger problem is that board configuration is written in headers statically and #ifdefs are ensuring that right HW is used. This would mean maintaining separate kernel tree for Netwalker and porting to newer versions will be always pain. As the biggest pain I find fact that there are widespread #ifdefs in 46 files in different areas of kernel altering code slightly for Netwalker. That means a LOT of time to do things correctly and maintainable. It seems that these changes were done by Nissin Systems Co.,Ltd. - thanks for hardly maintainable code!

I abandoned porting code to Freescale's kernel but I hope there is way to do it correctly in upstream. That will be my long term focus.

Best regards,

Sleep_Walker


UPDATE: it seems that some files contain some partial backport of newer kernel features and statistic measurement so the count of files which needs to be reworked is a bit smaller. It also seems that hidden cursor in framebuffer console is ugly handled feature, not bug. Authors didn't want to have SHARP logo (which seems to be easily altered) disturbed by blinking cursor.

UPDATE2: Yes! Got blinking cursor - what a relief...
« Last Edit: June 13, 2010, 01:23:25 pm by Sleep_Walker »
Palm Tungsten|T3 -->  Palm Treo 680 && Palm Treo 650 && Palm LifeFlash && Palm TX && Freerunner && Palm Tungsten|T && Palm III && Palm Treo 755p && SHARP PC-Z1 Netwalker - http://hackndev.com

Sleep_Walker

  • Newbie
  • *
  • Posts: 17
    • View Profile
    • http://sleepwalker.hackndev.com
Netwalker's Kernel
« Reply #1 on: June 11, 2010, 03:55:43 pm »
Ok, there are also some positives of this digging. I found that LED currently controlled by WiFi driver can be reused for other tasks - I missed monitoring access to SD card or WiFi activity - this would be easy with slight kernel changes
Palm Tungsten|T3 -->  Palm Treo 680 && Palm Treo 650 && Palm LifeFlash && Palm TX && Freerunner && Palm Tungsten|T && Palm III && Palm Treo 755p && SHARP PC-Z1 Netwalker - http://hackndev.com

ptoki

  • Jr. Member
  • **
  • Posts: 90
    • View Profile
    • http://
Netwalker's Kernel
« Reply #2 on: June 11, 2010, 05:13:11 pm »
Quote from: Sleep_Walker
Ok, there are also some positives of this digging. I found that LED currently controlled by WiFi driver can be reused for other tasks - I missed monitoring access to SD card or WiFi activity - this would be easy with slight kernel changes
I admire your efforts. I do not know almost anything about kernel programming but Im aware how complicated it is.
Is it very hard to make patch for blinking wifi led?

And another question: is it possible to get any sort of remote for netwalker (BT solution is known to me)? Zaurus has such solution (resistors in audio jack).

Sleep_Walker

  • Newbie
  • *
  • Posts: 17
    • View Profile
    • http://sleepwalker.hackndev.com
Netwalker's Kernel
« Reply #3 on: June 13, 2010, 05:33:10 am »
Quote from: ptoki
Quote from: Sleep_Walker
Ok, there are also some positives of this digging. I found that LED currently controlled by WiFi driver can be reused for other tasks - I missed monitoring access to SD card or WiFi activity - this would be easy with slight kernel changes
I admire your efforts. I do not know almost anything about kernel programming but Im aware how complicated it is.
Is it very hard to make patch for blinking wifi led?

And another question: is it possible to get any sort of remote for netwalker (BT solution is known to me)? Zaurus has such solution (resistors in audio jack).
LED - it depends on your approach - mac80211 provides these LED triggers already, but ks7010_sdio doesn't use it. If you hardcode such change, it should be doable quite simply, but it would be better choice to fix this driver and merge upstream

I'm not sure what do you mean, but you have USB port to do anything you want...

UPDATE: Ok, you can enable LED during compilation in 2.6.28 kernel and use mmc1 trigger (where SDIO WiFi is connected), but you need to disable LED handling in WiFi. I tried to do it quickly during shopping but probably missed something so I got to oops quickly.

UPDATE2: I'm pretty sure that my modifications are quite clear so I suspect that weird sdio detection handling (used way of WiFi on/off). Harder to spot :/
« Last Edit: June 13, 2010, 04:51:05 pm by Sleep_Walker »
Palm Tungsten|T3 -->  Palm Treo 680 && Palm Treo 650 && Palm LifeFlash && Palm TX && Freerunner && Palm Tungsten|T && Palm III && Palm Treo 755p && SHARP PC-Z1 Netwalker - http://hackndev.com

Sleep_Walker

  • Newbie
  • *
  • Posts: 17
    • View Profile
    • http://sleepwalker.hackndev.com
Netwalker's Kernel
« Reply #4 on: June 14, 2010, 06:20:53 pm »
I posted "patches" here.
Palm Tungsten|T3 -->  Palm Treo 680 && Palm Treo 650 && Palm LifeFlash && Palm TX && Freerunner && Palm Tungsten|T && Palm III && Palm Treo 755p && SHARP PC-Z1 Netwalker - http://hackndev.com

propofol

  • Newbie
  • *
  • Posts: 31
    • View Profile
    • http://www.ingogo.net
Netwalker's Kernel
« Reply #5 on: June 15, 2010, 01:04:50 am »
Hi Netwalker,

Thanks for the info on getting the cursor back. I also found this very annoying. It seems somewhat  painful compiling the kernel from scratch on the Netwalker. Do you use a cross compile environment or virtual machine or did you just do it on the Netwalker?

Regards,
Stefan


Quote from: Sleep_Walker
I posted "patches" here.

Sleep_Walker

  • Newbie
  • *
  • Posts: 17
    • View Profile
    • http://sleepwalker.hackndev.com
Netwalker's Kernel
« Reply #6 on: June 15, 2010, 03:32:28 am »
Quote from: propofol
Hi Netwalker,
hehe, Sleep_Walker is nick, Netwalker is device

Quote from: propofol
Thanks for the info on getting the cursor back. I also found this very annoying. It seems somewhat  painful compiling the kernel from scratch on the Netwalker. Do you use a cross compile environment or virtual machine or did you just do it on the Netwalker?

Well, I'm mostly compiling on Netwalker since it is comfortable and I can do it everywhere (doctor, shopping, etc  and I'm not making big differences so it takes seconds. I have also cross compilation environment on my notebook so I can use it too.
Palm Tungsten|T3 -->  Palm Treo 680 && Palm Treo 650 && Palm LifeFlash && Palm TX && Freerunner && Palm Tungsten|T && Palm III && Palm Treo 755p && SHARP PC-Z1 Netwalker - http://hackndev.com

propofol

  • Newbie
  • *
  • Posts: 31
    • View Profile
    • http://www.ingogo.net
Netwalker's Kernel
« Reply #7 on: June 16, 2010, 01:07:37 am »
Quote from: Sleep_Walker
Quote from: propofol
Hi Netwalker,
hehe, Sleep_Walker is nick, Netwalker is device

Quote from: propofol
Thanks for the info on getting the cursor back. I also found this very annoying. It seems somewhat  painful compiling the kernel from scratch on the Netwalker. Do you use a cross compile environment or virtual machine or did you just do it on the Netwalker?

Well, I'm mostly compiling on Netwalker since it is comfortable and I can do it everywhere (doctor, shopping, etc  and I'm not making big differences so it takes seconds. I have also cross compilation environment on my notebook so I can use it too.


Hi Sleep_Walker,

Oops, sorry that will teach me to do post late at night!

How do you set up the cross compile for the netwalker? I found one or two Japanese websites however even with Google translate I could not quite sort it out.

Regards,
Stefan

Sleep_Walker

  • Newbie
  • *
  • Posts: 17
    • View Profile
    • http://sleepwalker.hackndev.com
Netwalker's Kernel
« Reply #8 on: June 18, 2010, 09:44:27 am »
Hi,

Quote from: propofol
How do you set up the cross compile for the netwalker? I found one or two Japanese websites however even with Google translate I could not quite sort it out.

I'm not completely sure what you mean, but installation of cross compiler is distro dependand. In my openSUSE I have it as package in openSUSE Buildservice. In Gentoo I build it with crossdev tool...

Or you may be asking about cross compilation of kernel. I invoke make with this call:
make INSTALL_MOD_PATH="/Devel/netwalker/modules" CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm

If it is not, what you meant, please, ask again.
Palm Tungsten|T3 -->  Palm Treo 680 && Palm Treo 650 && Palm LifeFlash && Palm TX && Freerunner && Palm Tungsten|T && Palm III && Palm Treo 755p && SHARP PC-Z1 Netwalker - http://hackndev.com

propofol

  • Newbie
  • *
  • Posts: 31
    • View Profile
    • http://www.ingogo.net
Netwalker's Kernel
« Reply #9 on: June 18, 2010, 12:23:59 pm »
Quote from: Sleep_Walker
Hi,

Quote from: propofol
How do you set up the cross compile for the netwalker? I found one or two Japanese websites however even with Google translate I could not quite sort it out.

I'm not completely sure what you mean, but installation of cross compiler is distro dependand. In my openSUSE I have it as package in openSUSE Buildservice. In Gentoo I build it with crossdev tool...

Or you may be asking about cross compilation of kernel. I invoke make with this call:
make INSTALL_MOD_PATH="/Devel/netwalker/modules" CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm

If it is not, what you meant, please, ask again.

Thanks for the reply. This is what I had in mind. Unfortunately I have various flavors of Debian installed so my setup would be different.

Regards,
Stefan

PS Sorry about the multiple previous postings - I have removed it.