Kernel-vanilla

From Openmoko

(Difference between revisions)
Jump to: navigation, search
(Drivers and patches: A touchscreen driver for S3C24XX is now in Linux)
 
(11 intermediate revisions by one user not shown)
Line 31: Line 31:
 
|}
 
|}
  
== Drivers ==
+
== Drivers and patches ==
This section is about specific drivers.
+
This section is about specific drivers and patches. Originally based on [http://lists.openmoko.org/pipermail/openmoko-kernel/2009-July/010379.html this] email message by Lars-Peter Clausen.
* Functionality is what functionality on the phone the part it drives provides
+
* Functionality is what functionality on the phone it provides
* GTA01 and GTA02 is if the GTA01 or GTA02 has that component
+
* GTA01 and GTA02 is if the GTA01 or GTA02 needs it
* Included is if it now is a part of vanilla Linux. It can have the statuses no, submitted, in staging and yes
+
* Inclusion status is what status it now has in vanilla Linux. For example "in staging" if it's in staging, "included" if it's part of mainline outside staging, etc.
 
* Tested and confirmed to work is if anybody has been able to use the functionality on vanilla Linux
 
* Tested and confirmed to work is if anybody has been able to use the functionality on vanilla Linux
 
{| border=1
 
{| border=1
|Driver
+
|Driver / patch
 
|Functionality
 
|Functionality
 
|GTA01
 
|GTA01
 
|GTA02
 
|GTA02
|Included
+
|Inclusion status
 
|Tested and confirmed to work
 
|Tested and confirmed to work
 
|-
 
|-
Line 50: Line 50:
 
|yes
 
|yes
 
|no
 
|no
|[http://lists.openmoko.org/pipermail/openmoko-kernel/2009-July/010379.html no]
+
|[http://lists.openmoko.org/pipermail/openmoko-kernel/2009-July/010379.html not included]
 +
|
 
|-
 
|-
  
Line 57: Line 58:
 
|no
 
|no
 
|yes
 
|yes
|[http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f52046b14b1e1a8a02ae48d0c69d39c5e204644f yes]
+
|[http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f52046b14b1e1a8a02ae48d0c69d39c5e204644f included]
 +
|
 
|-
 
|-
  
Line 64: Line 66:
 
|no
 
|no
 
|yes
 
|yes
|[http://lists.openmoko.org/pipermail/openmoko-kernel/2009-July/010379.html no]
+
|[http://lists.openmoko.org/pipermail/openmoko-kernel/2009-July/010379.html not included]
 +
|
 
|-
 
|-
  
Line 71: Line 74:
 
|no
 
|no
 
|yes
 
|yes
 +
|
 +
|
 
|-
 
|-
  
Line 77: Line 82:
 
|no
 
|no
 
|yes
 
|yes
|[http://lists.openmoko.org/pipermail/openmoko-kernel/2009-July/010379.html no]
+
|[http://lists.openmoko.org/pipermail/openmoko-kernel/2009-July/010379.html not included]
 +
|
 
|-
 
|-
  
Line 84: Line 90:
 
|no
 
|no
 
|yes
 
|yes
|[http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a1daf67d721adfecc298132550bc2967c67f764f yes]
+
|[http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a1daf67d721adfecc298132550bc2967c67f764f included]
 +
|
 
|-
 
|-
  
Line 91: Line 98:
 
|yes
 
|yes
 
|yes
 
|yes
 +
|[http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f5f96b93e745dd054110d511779e7ec5cfdfdfe6 alternative included]
 +
|
 
|-
 
|-
  
Line 97: Line 106:
 
|yes
 
|yes
 
|yes
 
|yes
|[http://lists.openmoko.org/pipermail/openmoko-kernel/2009-July/010379.html no]
+
|[http://lists.openmoko.org/pipermail/openmoko-kernel/2009-July/010379.html not included]
 +
|
 
|-
 
|-
  
Line 104: Line 114:
 
|yes
 
|yes
 
|yes
 
|yes
 +
|[http://groups.google.com/group/linux.kernel/browse_thread/thread/4ad55a057cb300fd/15f3e20bd78c44e2 RFC]
 +
|
 
|-
 
|-
 +
 +
|gta02 buttons
 +
|
 +
|no
 +
|yes
 +
|[http://lists.infradead.org/pipermail/linux-arm-kernel/2009-November/005084.html posted]
 +
|
 +
|-
 +
 +
|gta02 LEDs
 +
|
 +
|no
 +
|yes
 +
|[http://lists.infradead.org/pipermail/linux-arm-kernel/2009-November/005081.html posted]
 +
|
 +
|-
 +
 +
|gta02 vibrator
 +
|
 +
|no
 +
|yes
 +
|[http://lists.infradead.org/pipermail/linux-arm-kernel/2009-November/005082.html posted]
 +
|
 +
|-
 +
 +
|[http://article.gmane.org/gmane.linux.ports.arm.kernel/66223/ dual packet workaround]
 +
|Fix slow ssh
 +
|?
 +
|yes
 +
|
 +
|
 +
|-
 +
 +
 
|}
 
|}
  
 
== Building and using a vanilla kernel ==
 
== Building and using a vanilla kernel ==
  
First you need the sources to a vanilla kernel that supports you phone. The Freerunner is supported from right before 2.6.32-rc6. You can download it from http://kernel.org/ and unpack it or check it out from git if you want the absolute newest version. To check it out from git go to the command line, navigate to the folder you want to download it to and run:
+
Before you start you should be warned that if anything goes wrong, say for example that the newest kernel introduce code that makes your phone explode, you your self is responsible for it. First you need the sources to a vanilla kernel that supports you phone. The Freerunner is supported from right before 2.6.32-rc6. You can download it from http://kernel.org/ and unpack it or check it out from git if you want the absolute newest version. To check it out from git go to the command line, navigate to the folder you want to download it to and run:
 
  git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
 
  git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
 
Then you need a config. You can find one [http://lists.openmoko.org/pipermail/openmoko-kernel/2009-November/010696.html here]. Replace /path/to/config in the make command with where you stored it.
 
Then you need a config. You can find one [http://lists.openmoko.org/pipermail/openmoko-kernel/2009-November/010696.html here]. Replace /path/to/config in the make command with where you stored it.
Line 116: Line 162:
 
If you are using a cross compiler you need to specify its prefix. In this example it is arm-linux-gnueabi- but you could have another. (In arm-linux-gnueabi-cpp arm-linux-gnueabi- is the prefix) If not you should remove the CROSS_COMPILE argument.
 
If you are using a cross compiler you need to specify its prefix. In this example it is arm-linux-gnueabi- but you could have another. (In arm-linux-gnueabi-cpp arm-linux-gnueabi- is the prefix) If not you should remove the CROSS_COMPILE argument.
 
Now, run
 
Now, run
  make O=GTA02 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- oldconfig=/path/to/config
+
cp /path/to/config GTA02/.config
 +
  make O=GTA02 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- oldconfig
 +
make O=GTA02 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
 
After it has compiled do
 
After it has compiled do
 
  arm-linux-gnueabi-objcopy -O binary -R .note -R .comment -S GTA02/arch/arm/boot/compressed/vmlinux GTA02/linux.bin
 
  arm-linux-gnueabi-objcopy -O binary -R .note -R .comment -S GTA02/arch/arm/boot/compressed/vmlinux GTA02/linux.bin

Latest revision as of 13:45, 10 December 2009

This page is about vanilla Linux (Linux without any extra patches).

[edit] Functionality

This section is about general functionality using vanilla Linux.

  • Functionality is the function of the phone
  • GTA01 and GTA02 is if the GTA01 or GTA02 has it
Functionality GTA01 GTA02
boot yes
log in using ssh yes
log in using serial console yes
Display stuff on screen no

[edit] Drivers and patches

This section is about specific drivers and patches. Originally based on this email message by Lars-Peter Clausen.

  • Functionality is what functionality on the phone it provides
  • GTA01 and GTA02 is if the GTA01 or GTA02 needs it
  • Inclusion status is what status it now has in vanilla Linux. For example "in staging" if it's in staging, "included" if it's part of mainline outside staging, etc.
  • Tested and confirmed to work is if anybody has been able to use the functionality on vanilla Linux
Driver / patch Functionality GTA01 GTA02 Inclusion status Tested and confirmed to work
pcf50606 power management yes no not included
pcf50633 power management no yes included
glamo graphics microSD no yes not included
lis302dl accelerometer no yes
ar6000 WiFi no yes not included
ASoC (neo1973_gta02_wm8753) sound no yes included
touchscreen yes yes alternative included
jbt6k display yes yes not included
generic battery driver yes yes RFC
gta02 buttons no yes posted
gta02 LEDs no yes posted
gta02 vibrator no yes posted
dual packet workaround Fix slow ssh ? yes

[edit] Building and using a vanilla kernel

Before you start you should be warned that if anything goes wrong, say for example that the newest kernel introduce code that makes your phone explode, you your self is responsible for it. First you need the sources to a vanilla kernel that supports you phone. The Freerunner is supported from right before 2.6.32-rc6. You can download it from http://kernel.org/ and unpack it or check it out from git if you want the absolute newest version. To check it out from git go to the command line, navigate to the folder you want to download it to and run:

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

Then you need a config. You can find one here. Replace /path/to/config in the make command with where you stored it. Now, on the command line, enter the folder where Linux is. To keep the result from the compiling separate from the code create a folder to put it in. I will use GTA02 as the folder name in this example

mkdir GTA02

If you are using a cross compiler you need to specify its prefix. In this example it is arm-linux-gnueabi- but you could have another. (In arm-linux-gnueabi-cpp arm-linux-gnueabi- is the prefix) If not you should remove the CROSS_COMPILE argument. Now, run

cp /path/to/config GTA02/.config
make O=GTA02 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- oldconfig
make O=GTA02 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-

After it has compiled do

arm-linux-gnueabi-objcopy -O binary -R .note -R .comment -S GTA02/arch/arm/boot/compressed/vmlinux GTA02/linux.bin

Then pack it in an image you can Flash to your Freerunner with

mkimage -A arm -O linux -T kernel -C none -a 30008000 -e 30008000 -n "Freerunner GTA02 vanilla" -d GTA02/linux.bin GTA02/uImage-gta02.bin

You can now flash it to your phone

Personal tools

This page is about vanilla Linux (Linux without any extra patches).

Functionality

This section is about general functionality using vanilla Linux.

  • Functionality is the function of the phone
  • GTA01 and GTA02 is if the GTA01 or GTA02 has it
Functionality GTA01 GTA02
boot yes
log in using ssh yes
log in using serial console yes
Display stuff on screen no

Drivers

This section is about specific drivers.

  • Functionality is what functionality on the phone the part it drives provides
  • GTA01 and GTA02 is if the GTA01 or GTA02 has that component
  • Included is if it now is a part of vanilla Linux. It can have the statuses no, submitted, in staging and yes
  • Tested and confirmed to work is if anybody has been able to use the functionality on vanilla Linux
Driver Functionality GTA01 GTA02 Included Tested and confirmed to work
pcf50606 power management yes no no
pcf50633 power management no yes yes
glamo graphics microSD no yes no
lis302dl accelerometer no yes
ar6000 WiFi no yes no
ASoC (neo1973_gta02_wm8753) sound no yes yes
touchscreen yes yes
jbt6k display yes yes no
generic battery driver yes yes

Building and using a vanilla kernel

First you need the sources to a vanilla kernel that supports you phone. The Freerunner is supported from right before 2.6.32-rc6. You can download it from http://kernel.org/ and unpack it or check it out from git if you want the absolute newest version. To check it out from git go to the command line, navigate to the folder you want to download it to and run:

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

Then you need a config. You can find one here. Replace /path/to/config in the make command with where you stored it. Now, on the command line, enter the folder where Linux is. To keep the result from the compiling separate from the code create a folder to put it in. I will use GTA02 as the folder name in this example

mkdir GTA02

If you are using a cross compiler you need to specify its prefix. In this example it is arm-linux-gnueabi- but you could have another. (In arm-linux-gnueabi-cpp arm-linux-gnueabi- is the prefix) If not you should remove the CROSS_COMPILE argument. Now, run

make O=GTA02 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- oldconfig=/path/to/config

After it has compiled do

arm-linux-gnueabi-objcopy -O binary -R .note -R .comment -S GTA02/arch/arm/boot/compressed/vmlinux GTA02/linux.bin

Then pack it in an image you can Flash to your Freerunner with

mkimage -A arm -O linux -T kernel -C none -a 30008000 -e 30008000 -n "Freerunner GTA02 vanilla" -d GTA02/linux.bin GTA02/uImage-gta02.bin

You can now flash it to your phone