[Gta04-owner] We need an Android kernel

Belisko Marek marek.belisko at gmail.com
Wed Jul 17 13:56:26 CEST 2013


On Wed, Jul 17, 2013 at 1:48 PM, Dr. H. Nikolaus Schaller
<hns at goldelico.com> wrote:
> Hi all,
>
> Am 17.07.2013 um 11:00 schrieb Dr. H. Nikolaus Schaller:
>>
>> I did look into the neil-brown sources and we can simply enable some CONFIG_ANDROID
>> features which are in 'staging'.
>>
>> #
>> # Android
>> #
>> -# CONFIG_ANDROID is not set
>> +CONFIG_ANDROID=y
>> +CONFIG_ANDROID_BINDER_IPC=y
>> +CONFIG_ASHMEM=y
>> +CONFIG_ANDROID_LOGGER=y
>> +CONFIG_ANDROID_TIMED_OUTPUT=y
>> +CONFIG_ANDROID_TIMED_GPIO=y
>> +CONFIG_ANDROID_LOW_MEMORY_KILLER=y
>> +CONFIG_ANDROID_INTF_ALARM_DEV=y
>> # CONFIG_PHONE is not set
>> # CONFIG_USB_WPAN_HCD is not set
>> # CONFIG_IPACK_BUS is not set
>>
>> I can't tell if this is complete or has problems, but it compiles fine and the extended kernel
>> still works with Debian.
>>
>> I have tried to boot the replicant 4.0 rootfs on this kernel, but it fails because it does
>> not find the init process. And I was not yet able to find the location of the 'init' binary
>> in the Replicant roofs to simply make a copy/symlink to /sbin/init (where the mainline
>> kernel apparently tries to locate it).
>
> Ok, I found the issue. The neil-brown-plus does not have the init ramdisk...
>
> So I copied the 'root' to the root of the SD card partition, unpacked system.tar.bz2 to
> /system and added a symlink for /sbin/init -> ../init. The kernel and the booargs.scr
> are copied to /boot so that the U-Boot finds the partition. The kernel modules are
> unpacked to /lib.
>
> If someone wants to analyse my approach, here are the files and a makesd script:
>
> <http://download.goldelico.com/gta04-replicant/4.0/unstable-3.7/>
>
> Now it boots and I get a console on RS232. The display shows the dual Replicant/GTA04
> combinations.
>
> But it does not boot through to the GUI. I see this dmesg repeating:
>
> [  245.890106] omap-dma-engine omap-dma-engine: allocating channel for 33
> [  245.898132] omap-dma-engine omap-dma-engine: freeing channel for 33
> [  250.259857] init: untracked pid 980 exited
> [  250.278686] init: untracked pid 979 exited
> [  250.793487] omap-dma-engine omap-dma-engine: allocating channel for 33
> [  250.801300] omap-dma-engine omap-dma-engine: freeing channel for 33
>
> This may be because the root and the system do not exactly match.
>
> Maybe because not all partitions are mounted properly.
>
> And maybe because depmod -a fails and therefore the kernel may not
> load all modules.
>
> Here is a ps:
>
> 130|root at android:/ # ps
> USER     PID   PPID  VSIZE  RSS     WCHAN    PC         NAME
> root      1     0     320    180   c00b990c 0000877c S /sbin/init
> root      2     0     0      0     c00464fc 00000000 S kthreadd
> root      3     2     0      0     c004d9a0 00000000 S ksoftirqd/0
> root      4     2     0      0     c0041df4 00000000 S kworker/0:0
> root      5     2     0      0     c0041df4 00000000 S kworker/0:0H
> root      7     2     0      0     c0041df4 00000000 S kworker/u:0H
> root      8     2     0      0     c004d9a0 00000000 S watchdog/0
> root      9     2     0      0     c0041b58 00000000 S khelper
> root      10    2     0      0     c02806a8 00000000 S kdevtmpfs
> root      12    2     0      0     c0090ce8 00000000 S bdi-default
> root      13    2     0      0     c0041b58 00000000 S kblockd
> root      14    2     0      0     c02cb00c 00000000 S khubd
> root      15    2     0      0     c0068d98 00000000 S irq/72-omap_i2c
> root      16    2     0      0     c0068d98 00000000 S irq/23-TWL4030-
> root      17    2     0      0     c0068d98 00000000 S irq/73-omap_i2c
> root      18    2     0      0     c0068d98 00000000 S irq/77-omap_i2c
> root      19    2     0      0     c00677d8 00000000 S khungtaskd
> root      20    2     0      0     c00886b0 00000000 S kswapd0
> root      21    2     0      0     c00df120 00000000 S fsnotify_mark
> root      22    2     0      0     c0041b58 00000000 S crypto
> root      34    2     0      0     c0068d98 00000000 S irq/261-gpio-w2
> root      35    2     0      0     c0041b58 00000000 S OMAP UART0
> root      36    2     0      0     c0041b58 00000000 S OMAP UART1
> root      37    2     0      0     c0041b58 00000000 S OMAP UART2
> root      38    2     0      0     c0249494 00000000 S kapmd
> root      39    2     0      0     c0041b58 00000000 S pvr_timer
> root      40    2     0      0     c0041df4 00000000 S kworker/u:1
> root      45    2     0      0     c02a5310 00000000 S mtdblock0
> root      46    2     0      0     c02a5310 00000000 S mtdblock1
> root      47    2     0      0     c02a5310 00000000 S mtdblock2
> root      48    2     0      0     c02a5310 00000000 S mtdblock3
> root      49    2     0      0     c02a5310 00000000 S mtdblock4
> root      50    2     0      0     c0046020 00000000 S spi1
> root      51    2     0      0     c0046020 00000000 S spi2
> root      52    2     0      0     c0046020 00000000 S spi3
> root      53    2     0      0     c0046020 00000000 S spi4
> root      54    2     0      0     c03010b8 00000000 S w1_bus_master1
> root      55    2     0      0     c0041df4 00000000 S kworker/0:2
> root      56    2     0      0     c0041b58 00000000 S binder
> root      57    2     0      0     c031c094 00000000 S mmcqd/0
> root      58    2     0      0     c0041df4 00000000 S kworker/u:2
> root      59    2     0      0     c0041b58 00000000 S deferwq
> root      60    2     0      0     c02ba2c4 00000000 S ubi_bgt0d
> root      61    2     0      0     c0041df4 00000000 S kworker/0:3
> root      62    2     0      0     c0041df4 00000000 S kworker/0:1H
> root      63    2     0      0     c014d820 00000000 S jbd2/mmcblk0p2-
> root      64    2     0      0     c0041b58 00000000 S ext4-dio-unwrit
> root      65    1     300    148   c00b990c 0000877c S /sbin/ueventd
> root      76    2     0      0     c00cc0a8 00000000 S flush-179:0
> system    90    1     828    292   c033c220 b6f787d0 S /system/bin/servicemanager
> root      91    1     4016   744   ffffffff b6f5fdd4 S /system/bin/vold
> root      93    1     692    284   c038aab8 b6f370d8 S /system/bin/debuggerd
> bluetooth 97    1     1332   604   c00b990c b6f3c598 S /system/bin/dbus-daemon
> root      101   1     768    420   c003c4a4 b6f0bfb4 S /system/bin/sh
> root      103   1     1348   132   ffffffff 00008294 S /sbin/adbd
> media     1297  1     19424  5500  ffffffff b6f787d0 S /system/bin/mediaserver
> root      1298  1     6312   908   ffffffff b6f3add4 S /system/bin/netd
> root      1312  101   956    344   00000000 b6f14598 R ps
> root at android:/
>
> So I would conclude that we *can* run Android on top of our 3.7 neil-plus
> kernel [1]. We just need to configure the Android extensions and add the init ramdisk.
Thanks for checking. In meantime I asked linaro android guys on IRC
why they use different kernel for panda and for
Versatile and reply is:
- there is no landing team to upgrade graphics binary blobs for
pandaboard to a newer kernel hence it is still based on 3.2 stable
kernel.
- Versatile express boots with software opengles stack and hence it is
easier to keep it working on the tip (mainline)
And gta04 have PVR blobs for 3.7 ;).
>
> BR,
> Nikolaus
>
> [1]: https://github.com/goldelico/gta04-kernel/tree/neil-plus
> _______________________________________________
> Gta04-owner mailing list
> Gta04-owner at goldelico.com
> http://lists.goldelico.com/mailman/listinfo/gta04-owner

Cheers,

marek

--
as simple and primitive as possible
-------------------------------------------------
Marek Belisko - OPEN-NANDRA
Freelance Developer

Ruska Nova Ves 219 | Presov, 08005 Slovak Republic
Tel: +421 915 052 184
skype: marekwhite
twitter: #opennandra
web: http://open-nandra.com


More information about the Gta04-owner mailing list