denysvitali / linux-on-pixel-c

Documentation on how to run a Linux Distro on the Google Pixel C (2015)
MIT License
61 stars 5 forks source link

Can't enter desktop #9

Open kendling opened 6 years ago

kendling commented 6 years ago

I extract the arch-xfce-lightdm.tar.gz to /data. And then I run fastboot boot boot-4.13-rc4_20170816_114501.img.unsigned or fastboot boot boot-4.13-rc4_20170809_223257.img.

It can see the noise screen both.

But I can't enter the desktop after waiting 30 minutes.

denysvitali commented 6 years ago

Thank you for opening this issue and trying the project.
Did you extract the files in /data/Arch or just /data?

Can you post the output of ls /data/Arch?

kendling commented 6 years ago

Thank for reply. The extract path is /data/Arch/.

I following your step:

Boot in TWRP

adb push arch-xfce-lightdm.tar.gz /data/ adb shell (gets a shell into the device) cd /data tar -xvf arch-xfce-lightdm.tar.gz

vartom commented 6 years ago

After installing 8.1 Linux kernel can not mount the disk. Requires the config_quota. Adding this config does not seem to solve the problem.

denysvitali commented 6 years ago

@kendling @vartom I'm sorry but I'm quite busy these weeks (it's a period full of midterms and finals, my free time is very limited).
I'll provide more help ASAP.

@kendling Are you using busybox's tar? The one included in TWRP is quite buggy and doesn't extract everything. Check this section, specifically the note right after the paragraph.
TL;DR: Download this, then push it to the device (adb push busybox-armv6l /cache/busybox), adb shell chmod u+x /cache/busybox and then adb shell /cache/busybox tar -C /data -xvf /data/arch-xfce-lightdm.tar.gz

@vartom I'll take a look into it! Thanks for the report!

vartom commented 6 years ago

So added it to the config CONFIG_QUOTA=y and CONFIG_QFMT_V2=y The internal memory is mounted. Logs are written. But I never saw the desktop. There is no picture on the display.

kendling commented 6 years ago

@denysvitali Still not working.

I was try to redownload FS and extract by new busybox tar from busybox.net.

Show this screen after noise screen. _20180202100713

vartom commented 6 years ago

So not only I have such a problem with the launch. I already tried to build the kernel 4.9. The screen has the same noise and bars. The system startup logs and X look normal.

denysvitali commented 6 years ago

The thing you guys can try (just to test if the kernel is working) is to use the NVIDIA's rootfs (Ubuntu)

I have to find a better way to create a customized rootfs of Arch Linux w/ lightdm and some other customizations: after my exams (after February 8) I'll dedicate all of my free time to this project.

I'm using this as a base right now to build my rootfs. The previously shared rootfs were a simple tar created from my system.

My goal is to set up a CI (probably on Travis or Jenkins) to build the rootfs w/ the Pixel C customizations (lightbar that turns light blue after boot, lightdm + nouveau drivers, onboard, wifi scripts and so on).

vartom commented 6 years ago

I tried using NVIDIA's rootfs (Ubuntu) 24.x and 28.1. I tried to use Nvidia with a driver package for tegra and without this package. The result is the same. Instead of the terminal which I see using a 3.18 kernel, I look the same strips. I tried to run a different rootfs using the 3.18(stok) kernel including its earlier version (July 1, 2015) and the systems started and the screen displayed the correct picture. I can not find the reason for the distortion of the picture on the kernel above 4.9.

denysvitali commented 6 years ago

Okay, so now you're talking about #1 , instead of #9 (this issue, "Can't enter desktop").

Maybe the problem is in the dts. In our kernel we use a different dts from the one used in Google's kernel

vartom commented 6 years ago

As it turned out, these problems are interrelated. If in august you like get a picture and # 1 for you a bug, then for me this is a primary problem since I do not get a normal picture at all.

denysvitali commented 6 years ago

Can you guys please try with this boot image (also available here) and this rootfs?

Follow this procedure, the rootfs must be placed in the /system partition (/dev/block/mmcblk0p4)

SHA256 sums

Rootfs: bc5299089602f61e0c2c0046dbdf563905c6e5451b1c23a3a7293ffd8ffe52e5 Boot Image: ff9cbe795ad1b002e4abff302876735e34624d72ad2c3e9ebc7933acb0eedaf8

vartom commented 6 years ago

The system from 160218 does not load onto the desktop. On the screen displays three rectangles with a command line.

X.Org X Server 1.19.6
Release Date: 2017-12-20
[     7.697] X Protocol Version 11, Revision 0
[     7.697] Build Operating System: Linux 4.12.7-1-ARCH aarch64 
[     7.697] Current Operating System: Linux alarm 4.15.2+ #56 SMP PREEMPT Sun Feb 18 03:05:38 +07 2018 aarch64
[     7.697] Kernel command line: cros_secure vpr=0x08000000@0xf6800000 cros_legacy init=/init rw fbcon loglevel=0 debug earlyprintk drm.atomic=1 no_console_suspend firmware_class.path=/lib/firmware
[     7.697] Build Date: 30 January 2018  11:53:15PM
[     7.697]  
[     7.697] Current version of pixman: 0.34.0
[     7.697]    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
[     7.697] Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[     7.697] (==) Log file: "/var/log/Xorg.0.log", Time: Sun Feb 18 05:28:10 2018
[     7.709] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[     7.713] (==) No Layout section.  Using the first Screen section.
[     7.713] (==) No screen section available. Using defaults.
[     7.713] (**) |-->Screen "Default Screen Section" (0)
[     7.713] (**) |   |-->Monitor "<default monitor>"
[     7.719] (==) No monitor specified for screen "Default Screen Section".
    Using a default monitor configuration.
[     7.719] (==) Automatically adding devices
[     7.719] (==) Automatically enabling devices
[     7.719] (==) Automatically adding GPU devices
[     7.719] (==) Automatically binding GPU devices
[     7.719] (==) Max clients allowed: 256, resource mask: 0x1fffff
[     7.739] (WW) The directory "/usr/share/fonts/Type1/" does not exist.
[     7.739]    Entry deleted from font path.
[     7.739] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/100dpi/".
[     7.739]    Entry deleted from font path.
[     7.739]    (Run 'mkfontdir' on "/usr/share/fonts/100dpi/").
[     7.740] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/75dpi/".
[     7.740]    Entry deleted from font path.
[     7.740]    (Run 'mkfontdir' on "/usr/share/fonts/75dpi/").
[     7.740] (==) FontPath set to:
    /usr/share/fonts/misc/,
    /usr/share/fonts/TTF/,
    /usr/share/fonts/OTF/
[     7.740] (==) ModulePath set to "/usr/lib/xorg/modules"
[     7.740] (II) The server relies on udev to provide the list of input devices.
    If no devices become available, reconfigure udev or disable AutoAddDevices.
[     7.741] (II) Loader magic: 0x5b40f6bd28
[     7.741] (II) Module ABI versions:
[     7.741]    X.Org ANSI C Emulation: 0.4
[     7.741]    X.Org Video Driver: 23.0
[     7.741]    X.Org XInput driver : 24.1
[     7.741]    X.Org Server Extension : 10.0
[     7.742] (--) using VT number 2

[     7.742] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[     7.744] (II) xfree86: Adding drm device (/dev/dri/card1)
[     7.760] (II) xfree86: Adding drm device (/dev/dri/card0)
[     7.760] (II) no primary bus or device found
[     7.760]    falling back to /sys/devices/platform/50000000.host1x/drm/drm/card1
[     7.760] (II) LoadModule: "glx"
[     7.762] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[     7.811] (II) Module glx: vendor="X.Org Foundation"
[     7.811]    compiled for 1.19.6, module version = 1.0.0
[     7.811]    ABI class: X.Org Server Extension, version 10.0
[     7.812] (==) Matched modesetting as autoconfigured driver 0
[     7.812] (==) Matched fbdev as autoconfigured driver 1
[     7.812] (==) Assigned the driver to the xf86ConfigLayout
[     7.812] (II) LoadModule: "modesetting"
[     7.812] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
[     7.815] (II) Module modesetting: vendor="X.Org Foundation"
[     7.815]    compiled for 1.19.6, module version = 1.19.6
[     7.815]    Module class: X.Org Video Driver
[     7.815]    ABI class: X.Org Video Driver, version 23.0
[     7.815] (II) LoadModule: "fbdev"
[     7.815] (WW) Warning, couldn't open module fbdev
[     7.815] (II) UnloadModule: "fbdev"
[     7.815] (II) Unloading fbdev
[     7.815] (EE) Failed to load module "fbdev" (module does not exist, 0)
[     7.815] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[     7.876] (II) modeset(0): using drv /dev/dri/card1
[     7.876] (II) modeset(G0): using drv /dev/dri/card0
[     7.876] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[     7.877] (II) modeset(0): Creating default Display subsection in Screen section
    "Default Screen Section" for depth/fbbpp 24/32
[     7.877] (==) modeset(0): Depth 24, (==) framebuffer bpp 32
[     7.877] (==) modeset(0): RGB weight 888
[     7.877] (==) modeset(0): Default visual is TrueColor
[     7.877] (II) Loading sub module "glamoregl"
[     7.877] (II) LoadModule: "glamoregl"
[     7.877] (II) Loading /usr/lib/xorg/modules/libglamoregl.so
[     7.900] (II) Module glamoregl: vendor="X.Org Foundation"
[     7.900]    compiled for 1.19.6, module version = 1.0.0
[     7.900]    ABI class: X.Org ANSI C Emulation, version 0.4
[     7.900] (II) glamor: OpenGL accelerated X.org driver based.
[     8.682] (II) glamor: EGL version 1.4 (DRI2):
[     8.682] EGL_MESA_drm_image required.
[     8.685] (EE) modeset(0): glamor initialization failed
[     8.685] (II) modeset(0): ShadowFB: preferred NO, enabled NO
[     8.686] (II) modeset(0): Output DSI-1 has no monitor section
[     8.686] (II) modeset(0): EDID for output DSI-1
[     8.686] (II) modeset(0): Printing probed modes for output DSI-1
[     8.686] (II) modeset(0): Modeline "2560x1800"x60.0  304.42  2560 2640 2720 2800  1800 1804 1808 1812 (108.7 kHz)
[     8.686] (II) modeset(0): Output DSI-1 connected
[     8.686] (II) modeset(0): Using sloppy heuristic for initial modes
[     8.686] (II) modeset(0): Output DSI-1 using initial mode 2560x1800 +0+0
[     8.686] (==) modeset(0): Using gamma correction (1.0, 1.0, 1.0)
[     8.686] (==) modeset(0): DPI set to (96, 96)
[     8.686] (II) Loading sub module "fb"
[     8.686] (II) LoadModule: "fb"
[     8.686] (II) Loading /usr/lib/xorg/modules/libfb.so
[     8.690] (II) Module fb: vendor="X.Org Foundation"
[     8.690]    compiled for 1.19.6, module version = 1.0.0
[     8.690]    ABI class: X.Org ANSI C Emulation, version 0.4
[     8.691] (==) modeset(G0): Depth 24, (==) framebuffer bpp 32
[     8.691] (==) modeset(G0): RGB weight 888
[     8.691] (==) modeset(G0): Default visual is TrueColor
[     8.691] (II) Loading sub module "glamoregl"
[     8.691] (II) LoadModule: "glamoregl"
[     8.691] (II) Loading /usr/lib/xorg/modules/libglamoregl.so
[     8.691] (II) Module glamoregl: vendor="X.Org Foundation"
[     8.691]    compiled for 1.19.6, module version = 1.0.0
[     8.691]    ABI class: X.Org ANSI C Emulation, version 0.4
[     8.691] (II) glamor: OpenGL accelerated X.org driver based.
[     8.744] (II) glamor: EGL version 1.4 (DRI2):
[     8.796] (II) modeset(G0): glamor initialized
[     8.797] (==) modeset(G0): Using gamma correction (1.0, 1.0, 1.0)
[     8.797] (==) modeset(G0): DPI set to (96, 96)
[     8.797] (II) Loading sub module "fb"
[     8.797] (II) LoadModule: "fb"
[     8.797] (II) Loading /usr/lib/xorg/modules/libfb.so
[     8.797] (II) Module fb: vendor="X.Org Foundation"
[     8.797]    compiled for 1.19.6, module version = 1.0.0
[     8.797]    ABI class: X.Org ANSI C Emulation, version 0.4
[     8.797] (==) Depth 24 pixmap format is 32 bpp
[     8.865] (==) modeset(G0): Backing store enabled
[     8.865] (==) modeset(G0): Silken mouse enabled
[     8.867] (II) modeset(G0): RandR 1.2 enabled, ignore the following RandR disabled message.
[     8.870] (==) modeset(G0): DPMS enabled
[     8.870] (II) modeset(G0): [DRI2] Setup complete
[     8.870] (II) modeset(G0): [DRI2]   DRI driver: nouveau
[     8.870] (II) modeset(G0): [DRI2]   VDPAU driver: nouveau
[     8.893] (==) modeset(0): Backing store enabled
[     8.893] (==) modeset(0): Silken mouse enabled
[     8.893] (II) modeset(0): RandR 1.2 enabled, ignore the following RandR disabled message.
[     8.908] (==) modeset(0): DPMS enabled
[     8.909] (--) RandR disabled
[     8.919] (II) AIGLX: Screen 0 is not DRI2 capable
[     8.919] (EE) AIGLX: reverting to software rendering
[     8.923] (II) IGLX: enabled GLX_MESA_copy_sub_buffer
[     8.925] (II) IGLX: Loaded and initialized swrast
[     8.925] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[     8.941] (II) modeset(G0): Damage tracking initialized
[     8.941] (II) modeset(0): Damage tracking initialized
[     8.941] (II) modeset(0): Setting screen physical size to 677 x 476
[     9.093] (II) config/udev: Adding input device hid-over-i2c 06CB:3370 (/dev/input/event0)
[     9.093] (**) hid-over-i2c 06CB:3370: Applying InputClass "libinput touchscreen catchall"
[     9.093] (II) LoadModule: "libinput"
[     9.093] (II) Loading /usr/lib/xorg/modules/input/libinput_drv.so
[     9.107] (II) Module libinput: vendor="X.Org Foundation"
[     9.108]    compiled for 1.19.3, module version = 0.26.0
[     9.108]    Module class: X.Org XInput Driver
[     9.108]    ABI class: X.Org XInput driver, version 24.1
[     9.108] (II) Using input driver 'libinput' for 'hid-over-i2c 06CB:3370'
[     9.108] (**) hid-over-i2c 06CB:3370: always reports core events
denysvitali commented 6 years ago

@vartom that rootfs is marked as a pre-release because it has some bad permissions. In the next build (2018-02-18) everything should work normally.

I'm building it right now w/ Travis CI: you can check its status here

denysvitali commented 6 years ago

@vartom About the CONFIG_QFMT_V2 and CONFIG_QUOTA part: what version of Android were you running? I'm still having problems w/ Android 8.1 because of sdcardfs. I can't mount the /dev/mmcblk0p7 partition.
I'm trying to port sdcardfs to linux right now, but Android's kernel it's a complete mess

vartom commented 6 years ago

@denysvitali Android 8.1. sdcardfs not necessary. Most likely you have data partition encryption.

denysvitali commented 6 years ago

Probably. Even though I can mount the /data partition in TWRP without entering any password

vartom commented 6 years ago

@denysvitali This is not an indicator. check the section is not dm-0?

denysvitali commented 6 years ago

When Android is booted, /data appears as /dev/block/dm-2

/dev/block/dm-2 on /data type ext4 (rw,seclabel,nosuid,nodev,noatime,noauto_da_alloc,errors=panic,data=ordered)

I can't access the /data partition when the system is booted via fastboot boot boot.img, therefore it may be a bootloader "security feature"

vartom commented 6 years ago

block/dm-2 this is encryption.

vartom commented 6 years ago

untagged-828d52 booted to the desktop, no DRI2 capable, softwares rendering (((

denysvitali commented 6 years ago

I'll provide a (signed) boot image in a few minutes

denysvitali commented 6 years ago

You can try this image.
Please note that the image was built w/ my initramfs which needs the system files in /system.

vartom commented 6 years ago

Swears at the Quota. I started the kernel with my ramdisk. I do not want to delete and reflash the system.

denysvitali commented 6 years ago

You can build my initramfs and set the "in_data" value to true

vartom commented 6 years ago

@denysvitali Your screen photos look different than the ones I run from your image(untagged-828d52). I do not have the WiFi settings. What's the Difference? Do you start the system with a usb flash drive? I tried your ramdisk, but the kernel used its own. Later I'll try starting with a flash drive.

denysvitali commented 6 years ago

@vartom I manually installed gdm, gnome-session and gnome-control-centeron my system today. I haven't switched the tegra-nouveau-rootfs to GNOME yet because its weight is over 2GB, and it may cause some trouble to people like me who like to put the rootfs into the /system partition

vartom commented 6 years ago

Since I do not know Archlinux, it will be a problem manually installed .

denysvitali commented 6 years ago
pacman -Sy gdm gnome-session gnome-control-center
systemctl disable lightdm
systemctl enable gdm
systemctl stop lightdm
systemctl start gdm

I'll provide a GNOME rootfs if you want :)

vartom commented 6 years ago

I'll try it tomorrow. this is slightly different from Ubuntu to which I am still getting used to.

denysvitali commented 6 years ago

Don't worry. As long as you have a shell (SSH) you can easily switch the session an / or the Display Manager with the commands provided above. Check out the GDM page on Arch Linux Wiki for more info

denysvitali commented 6 years ago

@vartom Here is a freshly created rootfs that boots into GNOME and enables the NetworkManager and bluetooth daemon on boot:
https://mega.nz/#!PURlQZKS!w_rRxG6LCCOGB0YfMWq32CbyrotQwAtTN0S2E9cQ8hM

vartom commented 6 years ago

@denysvitali Thank you

vartom commented 6 years ago

@denysvitali Could you give instructions on how to correctly write rootfs on a flash drive? I tried to unzip the archive from rootfs via tar. Unzipped just to the root, not to the folder. As a result, the system starts to boot and hangs. Later I'll try another flash drive, but I do not think this is a problem.

Samt43 commented 6 years ago

You can install a system on flash drive with this : Modified initramfs that boot on usb in system folder : https://drive.google.com/file/d/1T1bXvTBbd1kCdvxm8ZVVQU81OV3uo9Ac/view?usp=sharing Standart .fit image (your freshly compiled 4.15 kernel): https://drive.google.com/file/d/1S5TZLhbcLRfEwzDEeybV6-82RctGLCsF/view?usp=sharing Use my script https://github.com/Samt43/tegra-rootfs-scripts/blob/master/deploy-rootfs $TOP/out/target/$ARCH/ArchLinuxArm/ is rootfs path $USB_MOUNT is the mount point of your flash drive

To summarise use the rsync command to extract your rootfs in a /system directory of the a drive.

Then using fastboot your can do : fastboot boot Image.fit newinitrd_usb.tar.gz You have 6 seconds to unplug your cable and plug your usb drive to pixel C :)

Samt43 commented 6 years ago

@denysvitali @vartom I like this way of booting because you don't need to modify your Pixel C at ALL to work on the project. The only problem is USB not very stable for my case

denysvitali commented 6 years ago

I wouldn't recommend running the system from USB. Whilst it is the most convenient solution (there is no need to touch any of the Pixel C partitions) it seems to be pretty unstable.
I personally had many troubles with my USB Hub when the Pixel C battery level is lower than 20% (I think that my hub drains too much current during the boot process, therefore the device turns itself off).

vartom commented 6 years ago

For system tests, starting with USB is fine. I use a little modified initrams from denysvitali. The previous problem with the launch was just because of the low battery charge.