[Folio 100 Android Development] menollo:
Archlinux arm

First of all: Thank you very much, momcilosystem, for your guide! it helped me a lot!

I'm a archlinux user and decided to give it a try to run archlinux on the tablet.

I had some problems with cross compiling: building went fine, but I was not able to boot it, so I used your pre-compiled kernel.

First i took the archlinux trimslice image: http://archlinuxarm.org/os/ArchLinuxARM-trimslice-latest.tar.gz and extracted it to an USB pendrive.

I also installed the kernel modules in /lib/modules/

And i'm not sure if the trimslice has the linux-firmware package installed, otherwise copy the /lib/firmware folder from another pc (these are platform independent binairy blobs, so you can use your desktop). These files are needed for the ath6k firmware (to get wireless network working).

Then I booted arch with your kernel using fastboot:

fastboot -i 0x955 -c "mem=448M@0M nvmem=64M@448M vmalloc=192M video=tegrafb usbcore.old_scheme_first=1 tegrapart=recovery:122000:a00:800,linux:a0e00:1000:800,loader:300:400:800,mbr:700:200:800,system:900:20000:800,cache:20900:80000:800,misc:a0900:400:800,userdata:a1f00:80000:800 boardtype=PR root=/dev/sda1 rw usb-storage.delay_use=0 rootdelay=3 single" boot boot.img-kernel boot.img-ramdisk

Switching TTY's freezes the system, I'm still not sure why, I think it's something with the old iniscripts.

I used the 'single' kernel parameter to boot to single user mode (1 TTY).

Now I have an ArchLinux root shell #, so this is a start.

First thing is to fix an internet connection with wpa_supplicant, so we can use pacman.

Then update the system and replace initscripts with systemd since with systemd I can switch TTY's:

# pacman -Syu
# pacman -S systemd-sysvcompat

If you reboot the tablet, without the 'single' kernel parameter, It should boot to multi-user mode, and switching TTY's should work.

You can now install xorg and lxde: (reconnect to internet, and run pacman -S lxde xorg)

the trimslice image has a package pre-installed called: nvidia-trimslice. This package contains the tegra xorg driver.

When you remove this package, you can start the X-server with the tegrafb driver.

But I want to use the tegra driver, because it has composite and HDMI support.

With the nvidia-trimslice package installed, X won't start. It seems the tegra driver is working, but there is no shared memory:

Xorg.0.log:
...
[ 288.729] (II) LoadModule: "tegra"
[ 288.730] (II) Loading /usr/lib/xorg/modules/drivers/tegra_drv.so
[ 288.772] (II) NVIDIA driver for Tegra
[ 288.819] (II) TEGRA(0): GPU is a T20/T25
...
[ 288.821] (II) TEGRA(0): Output LVDS-1 connected
[ 288.821] (II) TEGRA(0): Output HDMI-1 disconnected
[ 288.821] (II) TEGRA(0): Output LVDS-1 using initial mode 1024x600
[ 288.822] (--) TEGRA(0): VideoRAM: 32768 kByte
...
[ 288.865] (EE) TEGRA(0): Failed to initialize shared memory.
[ 288.865] (EE) TEGRA(0): This may happen if you have CONFIG_SYSVIPC disabled in your kernel.

So I'm currently at this point now.

My next step is trying to (re)compile my own kernel with CONFIG_SYSVIPC enabled.

I'll keep you posted!

UPDATE:

I managed to compile my own kernel with CONFIG_SYSVIPC enabled (I was using wrong compiler/architecture)

Now the trimslice driver worked! but it was verry slow, and I got some segfaults.

I saw there is a newer nvidia driver available (R16) so I made an archlinux package for it:

http://archlinux.menollo.nl/nvidia-ventana/

And this one works fast and smooth!

I almost forgot: I also disabled CONFIG_ANDROID_PARANOID_NETWORK in the kernel config, otherwise you can only use network as root