Kernel-vanilla
From Openmoko
(→Drivers and patches: A touchscreen driver for S3C24XX is now in Linux) |
|||
(22 intermediate revisions by 2 users not shown) | |||
Line 25: | Line 25: | ||
|[http://lists.openmoko.org/pipermail/openmoko-kernel/2009-November/010696.html yes] | |[http://lists.openmoko.org/pipermail/openmoko-kernel/2009-November/010696.html yes] | ||
|- | |- | ||
+ | |||
+ | |Display stuff on screen | ||
+ | | | ||
+ | |no | ||
|} | |} | ||
− | == 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 it provides | |
− | * Functionality is what functionality on the phone | + | * GTA01 and GTA02 is if the GTA01 or GTA02 needs it |
− | * GTA01 and GTA02 is if the GTA01 or GTA02 | + | * 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 | ||
− | | | + | |Inclusion status |
|Tested and confirmed to work | |Tested and confirmed to work | ||
|- | |- | ||
|pcf50606 | |pcf50606 | ||
− | | | + | |power management |
|yes | |yes | ||
|no | |no | ||
+ | |[http://lists.openmoko.org/pipermail/openmoko-kernel/2009-July/010379.html not included] | ||
+ | | | ||
+ | |- | ||
+ | |||
+ | |pcf50633 | ||
+ | |power management | ||
|no | |no | ||
+ | |yes | ||
+ | |[http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f52046b14b1e1a8a02ae48d0c69d39c5e204644f included] | ||
+ | | | ||
|- | |- | ||
|glamo | |glamo | ||
− | | | + | |graphics microSD |
|no | |no | ||
|yes | |yes | ||
− | | | + | |[http://lists.openmoko.org/pipermail/openmoko-kernel/2009-July/010379.html not included] |
+ | | | ||
|- | |- | ||
|lis302dl | |lis302dl | ||
− | | | + | |accelerometer |
|no | |no | ||
|yes | |yes | ||
+ | | | ||
+ | | | ||
|- | |- | ||
|ar6000 | |ar6000 | ||
− | | | + | |WiFi |
|no | |no | ||
|yes | |yes | ||
− | | | + | |[http://lists.openmoko.org/pipermail/openmoko-kernel/2009-July/010379.html not included] |
+ | | | ||
|- | |- | ||
− | |ASoC | + | |ASoC (neo1973_gta02_wm8753) |
|sound | |sound | ||
|no | |no | ||
|yes | |yes | ||
− | |[http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a1daf67d721adfecc298132550bc2967c67f764f | + | |[http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a1daf67d721adfecc298132550bc2967c67f764f included] |
+ | | | ||
|- | |- | ||
Line 81: | 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] | ||
+ | | | ||
|- | |- | ||
|jbt6k | |jbt6k | ||
+ | |display | ||
+ | |yes | ||
+ | |yes | ||
+ | |[http://lists.openmoko.org/pipermail/openmoko-kernel/2009-July/010379.html not included] | ||
+ | | | ||
+ | |- | ||
+ | |||
+ | |generic battery driver | ||
| | | | ||
|yes | |yes | ||
|yes | |yes | ||
+ | |[http://groups.google.com/group/linux.kernel/browse_thread/thread/4ad55a057cb300fd/15f3e20bd78c44e2 RFC] | ||
+ | | | ||
+ | |- | ||
+ | |||
+ | |gta02 buttons | ||
+ | | | ||
|no | |no | ||
+ | |yes | ||
+ | |[http://lists.infradead.org/pipermail/linux-arm-kernel/2009-November/005084.html posted] | ||
+ | | | ||
|- | |- | ||
− | | | + | |gta02 LEDs |
| | | | ||
+ | |no | ||
|yes | |yes | ||
+ | |[http://lists.infradead.org/pipermail/linux-arm-kernel/2009-November/005081.html posted] | ||
+ | | | ||
+ | |- | ||
+ | |||
+ | |gta02 vibrator | ||
+ | | | ||
+ | |no | ||
|yes | |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 == | ||
+ | |||
+ | 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 [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. | ||
+ | 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 [[Flashing_the_Neo_FreeRunner | flash]] it to your phone | ||
+ | |||
+ | [[Category:Kernel]] |
Latest revision as of 14: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