Coder Social home page Coder Social logo

denysvitali / linux-on-pixel-c Goto Github PK

View Code? Open in Web Editor NEW
61.0 15.0 5.0 46.66 MB

Documentation on how to run a Linux Distro on the Google Pixel C (2015)

License: MIT License

Shell 100.00%
pixel-c google pixel c arch linux kernel tegra tegra210 archlinux

linux-on-pixel-c's Introduction

Linux on Pixel C

This repo aims at documenting how to run GNU/Linux on a Google Pixel C (2015) device.

Pixel C running Arch Linux ARM


!!! WARNING !!! : The repo is now moved here


Introduction

What is the Google Pixel C?

The Pixel C is a 10.2 inch Android tablet, made by Google, which was released on December 8, 2015. It didn't had much success apparently, but its hardware is definitively still a flagship killer.

Unfortunately it runs Android, which doesn't seem to be really a productive / development oriented operating system, therefore we decided to port a Linux distro to it, to make it more productive and fast.

What distro are currently supported / planned?

Arch Linux ARM

Right now we've got Arch Linux Arm to work on the device. We haven't tried other distros yet, but PR are always welcome.

Void Linux

@q66 is planning a port of Void Linux.

What's the development status?

We are still in an alpha stage, the device boots with the latest kernel (4.17-rc2 as of 2018-05-04) but has still many a couple of issues that makes it hard to use as a daily driver.

What are the issues right now?

  • Wi-Fi / Bluetooth chip doesn't work (Broadcom 4354 / bcm4354)
  • Pixel C Keyboard doesn't work (need BT LE, which is provided by bcm4354)
  • Graphics Acceleration doesn't work, everything is rendered by the CPU apparently
  • Sound doesn't work
  • Lightbar (works on some kernel versions, a commit need to be cherry-picked. Quick fix is incoming.)

You can follow the issues here: if you happen to know how to solve one of these problems, please help us! Even the smallest comment may bring us one step forward.

What works?

  • Boots!
  • Display
  • Touch (hid-over-i2c)
  • SSH
  • Network (Ethernet) via an USB dongle (Pretty much USB-Ethernet dongle)
  • Network (Wi-Fi) via an USB dongle (Mediatek 7601u)
  • Lightbar (with 4.12-rc2)
  • Wi-Fi (BT still doesn't work, check this issue)
  • Wi-Fi via BCM4354 (Wi-Fi + BT Chip)
  • Bluetooth (and the Pixel C BT keyboard) via BCM4354 (Wi-Fi + BT Chip)

How can I get in touch with the team?

We have a Telegram Group and an IRC channel on freenode (#linux-on-pixel-c). Joining on the group or the channel is the same - the chats are linked together.

Prerequisites

  • Google Pixel C (2015)

Nice to have

  • USB Type-C HUB (I'm personally using this)
  • USB Wi-Fi Adapter (only a few are supported, I personally use this one)
  • USB Ethernet Adapter (any model should work)

Using an USB Ethernet adapter

Plug the ethernet cable, then plug the USB Ethernet adapter to your Pixel C. As soon as the adapter is detected, the Pixel C (if it booted correctly) will get an IP address via DHCP. Use the IP to log-in

Running Linux on your Pixel C

WARNING: You may void your warranty. I am not responsible for bricked devices, dead SD cards, or thermonuclear wars. Seriously though, if after a kernel modification you've made, the device gets too hot: you probably messed up with the thermal sensor and you may need to consider a force shutdown (by pressing Power + Vol- until the device powers itself off) before any damage may appear. Whilst I played around with my Pixel C on my own and never had any problem whatsoever, you may not be as lucky as I was. If you are not sure about a modification you've made, keep the device monitored. Don't put yourself in danger, we still need you.

WARNING: If you're going to put your rootfs in /data/ you need dm-verity and encryption OFF, or a newly formatted /data partion. Otherwise the system won't be able to boot into Linux. You can still put the rootfs in /system to avoid formatting the /data partition.

Prepare the filesystem

Choose one of the following (the first one is strongly recommended):

  1. Latest version of the RootFS
  2. My (OLD!) custom made FS with xfce + lightdm
  3. The Official ALARM rootfs

Be aware that the official ALARM rootfs requires an USB Ethernet adapter since the Wireless connection to a "PixelC" hotspot isn't preconfigured. You will also need to configure your Desktop Manager and your Sessions, all without seeing anything on the screen.

Default login for the project's rootfs:

Username Password
alarm alarm
root root

Default login for my custom-made FS (2):

Username Password
alarm pixelcalarm

Default login for the original ALARM rootfs (3):

Username Password
alarm alarm

Extract the filesystem

NOTE: You may need this busybox binary, personally I had some troubles when extracting tar.gz files with TWRP included busybox (returns "Killed" after some files extracted / has many segfaults). Therefore you may need to adb push busybox-armv6l /cache; chmod u+x /cache/busybox-armv6l and then call /cache/busybox-armv6l tar -xvf ... instead

Using /data partition

This is the default setup, all the kernel releases (boot images) are created assuming you want to boot from /data/Arch

  1. Boot in TWRP
  2. adb push arch-xfce-lightdm.tar.gz /data/
  3. adb shell (gets a shell into the device)
  4. cd /data
  5. tar -xvf arch-xfce-lightdm.tar.gz

Using /system partition

This is a different approach, it is useful because saves you the /data partition (in case you don't want to wipe it), but the filesystem will be limited to 3.76GB and you'll need a different initramfs (therefore you'll need a different prebuilt boot.img).

  1. Boot in TWRP
  2. adb push arch-xfce-lightdm.tar.gz /cache/
  3. adb shell (gets a shell into the device)
  4. mount -o rw /dev/block/mmcblk0p4 /system (mounts /system in r/w)
  5. rm -rf /system/* (deletes the content of /system)
  6. tar -xvf /cache/arch-xfce-lightdm.tar.gz -C /system (extracts the FS to /system)

Use this boot.img. Be aware, it is unsigned, therefore you can only use it with fastboot boot boot.img.unsigned.

From prebuilt images

Prebuilt boot.img images aren't available yet, but you can still boot the system by putting the Pixel C in fastboot mode and doing

Prebuilt images are available here, just flash the latest boot.img with the following command.

Note: The images that use /system instead of /data/Arch are marked as Pre-Release and are labelled as such.

fastboot flash boot boot.img
fastboot boot boot.img

From sources

Requirements

  • Docker

Preparation

Pull the dvitali/android-build-tools image with docker pull dvitali/android-build-tools or build it yourself from this repository.

Run the container with: docker run -v kernel:/kernel -it dvitali/android-build-tools:latest

This will give you a shell (zsh) from where you can compile the kernel - all the necessary tools are there.

If you need another shell, just do docker exec -it containerName zsh (where containerName is the name of the container, which can be found with docker ps)

Compilation

Run the following commands in the docker container:

cd /kernel
git clone https://github.com/denysvitali/linux-smaug/ -b linux-4.13-rc4 linux-smaug
cd linux-smaug/
make -j$(nproc)
./build-image.sh
wget https://ded1.denv.it/pixel-c/ramdisk.gz -O /kernel/ramdisk.gz

For the last command, you can use your own ramdisk, or compile it from my source.

Mounting the kernel dir

Mount the kernel dir in your home:

mkdir ~/kernel
sudo mount -o bind /var/lib/docker/volumes/kernel/_data ~/kernel

Flashing the image

sudo fastboot boot ~/kernel/linux-smaug/Image.fit ~/kernel/ramdisk.gz

Boot

If your screen looks like this after booting the image, wonderful! It means that it is booting (don't be scared about the static).

I honestly was really scared at first, but don't worry, if my Pixel C didn't die after all I did, this won't be harmful

Static showing on Pixel C

Resources

Arch Linux Forums: How to compile the Pixel C Kernel
Thierry's Blog: Booting a Pixel C tablet with a custom kernel
Git at Google: Kernel for Tegra
GitHub: Mathieu's Kernel for Smaug (4.11-RC1)
GitHub: Mathieu's Ramdisk
GitHub: My Kernel for Smaug (4.13-RC4)
GitHub: My initramfs
Pixel C partitions

Contributors

Support the project

Donate to the major contributors of this project

Don't like to donate money to strangers?

Donate some money to the Linux Foundation or the EFF.

Don't have money to spend?

Give us some help by solving some of the issues! The more we are working on this project, the faster we could all enjoy the Linux experience on our tablets!

Don't have a Pixel C?

You can still help us! We've got you covered: in the dmesg folder we've put some dmesg outputs to help us find / spot some errors and fix some bugs. Take a look!

linux-on-pixel-c's People

Contributors

denysvitali avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

linux-on-pixel-c's Issues

Physical buttons don't work

I'm pretty sure it is an error caused by libevent, that doesn't recognize the Power, Vol +, Vol - events.
Apparently they work in GNOME (or they were working at some point).

GPIO:

[root@pixel-c ~]# cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 0-255, parent: platform/6000d000.gpio, tegra-gpio:
 gpio-12  (                    |Lid                 ) in  hi IRQ
 gpio-83  (                    |PP1800_CAM          ) out lo    
 gpio-100 (                    |Volume Up           ) in  hi IRQ
 gpio-169 (                    |jdi-enable          ) out hi    
 gpio-170 (                    |jdi-reset           ) out hi    
 gpio-171 (                    |PP1800_LCDIO        ) out hi    
 gpio-172 (                    |PPLCD_VDD           ) out hi    
 gpio-189 (                    |Power               ) in  hi IRQ
 gpio-191 (                    |Volume Down         ) in  hi IRQ
 gpio-202 (                    |Tablet Mode         ) in  hi IRQ

Evtest output

Testing ... (interrupt to exit)
Event: time 1502312217.717873, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 1
Event: time 1502312217.717873, -------------- SYN_REPORT ------------
Event: time 1502312217.907894, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 0
Event: time 1502312217.907894, -------------- SYN_REPORT ------------
Event: time 1502312219.631962, type 1 (EV_KEY), code 115 (KEY_VOLUMEUP), value 1
Event: time 1502312219.631962, -------------- SYN_REPORT ------------
Event: time 1502312219.813930, type 1 (EV_KEY), code 115 (KEY_VOLUMEUP), value 0
Event: time 1502312219.813930, -------------- SYN_REPORT ------------
Event: time 1502312222.179026, type 1 (EV_KEY), code 116 (KEY_POWER), value 1
Event: time 1502312222.179026, -------------- SYN_REPORT ------------
Connection to 192.168.1.80 closed by remote host.
Connection to 192.168.1.80 closed.

Graphics Acceleration Is Missing

Currently Linux on Pixel C is missing GPU Acceleration, therefore the UI is laggy
dmesg is available here

[root@alarm /]# cat /var/log/Xorg.0.log
[   899.733] 
X.Org X Server 1.19.3
Release Date: 2017-03-15
[   899.733] X Protocol Version 11, Revision 0
[   899.733] Build Operating System: Linux 3.14.65-16-ARCH aarch64 
[   899.733] Current Operating System: Linux alarm 4.13.0-rc4+ #13 SMP PREEMPT Wed Aug 9 20:46:38 UTC 2017 aarch64
[   899.733] Kernel command line: cros_secure vpr=0x08000000@0xf6800000 earlycon
[   899.733] Build Date: 13 August 2017  04:10:10PM
[   899.733]  
[   899.733] Current version of pixman: 0.34.0
[   899.733]    Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
[   899.733] Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[   899.733] (==) Log file: "/var/log/Xorg.0.log", Time: Wed Aug 16 12:00:35 2017
[   899.734] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[   899.734] (==) No Layout section.  Using the first Screen section.
[   899.734] (==) No screen section available. Using defaults.
[   899.734] (**) |-->Screen "Default Screen Section" (0)
[   899.734] (**) |   |-->Monitor "<default monitor>"
[   899.734] (==) No monitor specified for screen "Default Screen Section".
        Using a default monitor configuration.
[   899.734] (==) Automatically adding devices
[   899.734] (==) Automatically enabling devices
[   899.734] (==) Automatically adding GPU devices
[   899.734] (==) Automatically binding GPU devices
[   899.734] (==) Max clients allowed: 256, resource mask: 0x1fffff
[   899.734] (WW) The directory "/usr/share/fonts/Type1/" does not exist.
[   899.734]    Entry deleted from font path.
[   899.734] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/100dpi/".
[   899.734]    Entry deleted from font path.
[   899.734]    (Run 'mkfontdir' on "/usr/share/fonts/100dpi/").
[   899.734] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/75dpi/".
[   899.734]    Entry deleted from font path.
[   899.734]    (Run 'mkfontdir' on "/usr/share/fonts/75dpi/").
[   899.734] (==) FontPath set to:
        /usr/share/fonts/misc/,
        /usr/share/fonts/TTF/,
        /usr/share/fonts/OTF/
[   899.734] (==) ModulePath set to "/usr/lib/xorg/modules"
[   899.734] (II) The server relies on udev to provide the list of input devices.
        If no devices become available, reconfigure udev or disable AutoAddDevices.
[   899.734] (II) Loader magic: 0x1207d4d20
[   899.734] (II) Module ABI versions:
[   899.734]    X.Org ANSI C Emulation: 0.4
[   899.734]    X.Org Video Driver: 23.0
[   899.734]    X.Org XInput driver : 24.1
[   899.734]    X.Org Server Extension : 10.0
[   899.736] (++) using VT number 7

[   899.736] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[   899.737] (II) xfree86: Adding drm device (/dev/dri/card0)
[   899.742] (II) no primary bus or device found
[   899.742]    falling back to /sys/devices/platform/50000000.host1x/drm/drm/card0
[   899.742] (II) LoadModule: "glx"
[   899.742] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[   899.751] (II) Module glx: vendor="X.Org Foundation"
[   899.751]    compiled for 1.19.3, module version = 1.0.0
[   899.751]    ABI class: X.Org Server Extension, version 10.0
[   899.751] (==) Matched modesetting as autoconfigured driver 0
[   899.751] (==) Matched fbdev as autoconfigured driver 1
[   899.751] (==) Assigned the driver to the xf86ConfigLayout
[   899.751] (II) LoadModule: "modesetting"
[   899.751] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
[   899.751] (II) Module modesetting: vendor="X.Org Foundation"
[   899.751]    compiled for 1.19.3, module version = 1.19.3
[   899.751]    Module class: X.Org Video Driver
[   899.751]    ABI class: X.Org Video Driver, version 23.0
[   899.752] (II) LoadModule: "fbdev"
[   899.752] (WW) Warning, couldn't open module fbdev
[   899.752] (II) UnloadModule: "fbdev"
[   899.752] (II) Unloading fbdev
[   899.752] (EE) Failed to load module "fbdev" (module does not exist, 0)
[   899.752] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[   899.758] (II) modeset(0): using drv /dev/dri/card0
[   899.759] (II) modeset(0): Creating default Display subsection in Screen section
        "Default Screen Section" for depth/fbbpp 24/32
[   899.759] (==) modeset(0): Depth 24, (==) framebuffer bpp 32
[   899.759] (==) modeset(0): RGB weight 888
[   899.759] (==) modeset(0): Default visual is TrueColor
[   899.759] (II) Loading sub module "glamoregl"
[   899.759] (II) LoadModule: "glamoregl"
[   899.759] (II) Loading /usr/lib/xorg/modules/libglamoregl.so
[   899.761] (II) Module glamoregl: vendor="X.Org Foundation"
[   899.761]    compiled for 1.19.3, module version = 1.0.0
[   899.761]    ABI class: X.Org ANSI C Emulation, version 0.4
[   899.761] (II) glamor: OpenGL accelerated X.org driver based.
[   899.872] (II) glamor: EGL version 1.4 (DRI2):
[   899.872] EGL_MESA_drm_image required.
[   899.873] (EE) modeset(0): glamor initialization failed
[   899.873] (II) modeset(0): ShadowFB: preferred NO, enabled NO
[   899.873] (II) modeset(0): Output DSI-1 has no monitor section
[   899.873] (II) modeset(0): EDID for output DSI-1
[   899.873] (II) modeset(0): Printing probed modes for output DSI-1
[   899.873] (II) modeset(0): Modeline "2560x1800"x60.0  304.42  2560 2640 2720 2800  1800 1804 1808 1812 (108.7 kHz)
[   899.873] (II) modeset(0): Output DSI-1 connected
[   899.873] (II) modeset(0): Using sloppy heuristic for initial modes
[   899.873] (II) modeset(0): Output DSI-1 using initial mode 2560x1800 +0+0
[   899.873] (==) modeset(0): Using gamma correction (1.0, 1.0, 1.0)
[   899.873] (==) modeset(0): DPI set to (96, 96)
[   899.873] (II) Loading sub module "fb"
[   899.873] (II) LoadModule: "fb"
[   899.874] (II) Loading /usr/lib/xorg/modules/libfb.so
[   899.874] (II) Module fb: vendor="X.Org Foundation"
[   899.874]    compiled for 1.19.3, module version = 1.0.0
[   899.874]    ABI class: X.Org ANSI C Emulation, version 0.4
[   899.874] (==) Depth 24 pixmap format is 32 bpp
[   899.897] (==) modeset(0): Backing store enabled
[   899.897] (==) modeset(0): Silken mouse enabled
[   899.897] (II) modeset(0): RandR 1.2 enabled, ignore the following RandR disabled message.
[   899.897] (==) modeset(0): DPMS enabled
[   899.897] (--) RandR disabled
[   899.909] (II) AIGLX: Screen 0 is not DRI2 capable
[   899.909] (EE) AIGLX: reverting to software rendering
[   899.913] (II) IGLX: enabled GLX_MESA_copy_sub_buffer
[   899.915] (II) IGLX: Loaded and initialized swrast
[   899.915] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[   899.915] (II) modeset(0): Damage tracking initialized
[   899.915] (II) modeset(0): Setting screen physical size to 677 x 476
[   900.025] (II) config/udev: Adding input device hid-over-i2c 06CB:3370 (/dev/input/event0)
[   900.025] (**) hid-over-i2c 06CB:3370: Applying InputClass "libinput touchscreen catchall"
[   900.025] (II) LoadModule: "libinput"
[   900.026] (II) Loading /usr/lib/xorg/modules/input/libinput_drv.so
[   900.029] (II) Module libinput: vendor="X.Org Foundation"
[   900.029]    compiled for 1.19.3, module version = 0.25.1
[   900.029]    Module class: X.Org XInput Driver
[   900.029]    ABI class: X.Org XInput driver, version 24.1
[   900.029] (II) Using input driver 'libinput' for 'hid-over-i2c 06CB:3370'
[   900.029] (**) hid-over-i2c 06CB:3370: always reports core events
[   900.029] (**) Option "Device" "/dev/input/event0"
[   900.029] (**) Option "_source" "server/udev"
[   900.030] (II) event0  - (II) hid-over-i2c 06CB:3370: (II) is tagged by udev as: Touchscreen
[   900.031] (II) event0  - (II) hid-over-i2c 06CB:3370: (II) device is a touch device
[   900.031] (II) event0  - (II) hid-over-i2c 06CB:3370: (II) device removed
[   900.064] (**) Option "config_info" "udev:/sys/devices/platform/7000c000.i2c/i2c-0/0-0020/0018:06CB:3370.0001/input/input0/event0"
[   900.064] (II) XINPUT: Adding extended input device "hid-over-i2c 06CB:3370" (type: TOUCHSCREEN, id 6)
[   900.064] (**) Option "AccelerationScheme" "none"
[   900.064] (**) hid-over-i2c 06CB:3370: (accel) selected scheme none/0
[   900.064] (**) hid-over-i2c 06CB:3370: (accel) acceleration factor: 2.000
[   900.064] (**) hid-over-i2c 06CB:3370: (accel) acceleration threshold: 4
[   900.065] (II) event0  - (II) hid-over-i2c 06CB:3370: (II) is tagged by udev as: Touchscreen
[   900.065] (II) event0  - (II) hid-over-i2c 06CB:3370: (II) device is a touch device
[   900.066] (II) config/udev: Adding input device hid-over-i2c 06CB:3370 (/dev/input/mouse0)
[   900.066] (II) No input driver specified, ignoring this device.
[   900.066] (II) This device may have been added with another device file.
[   900.067] (II) config/udev: Adding input device gpio-keys (/dev/input/event1)
[   900.067] (**) gpio-keys: Applying InputClass "libinput keyboard catchall"
[   900.067] (II) Using input driver 'libinput' for 'gpio-keys'
[   900.067] (**) gpio-keys: always reports core events
[   900.067] (**) Option "Device" "/dev/input/event1"
[   900.067] (**) Option "_source" "server/udev"
[   900.068] (II) event1  - (II) gpio-keys: (II) is tagged by udev as: Keyboard Switch
[   900.068] (II) event1  - (II) gpio-keys: (II) device is a keyboard
[   900.068] (II) event1  - (II) gpio-keys: (II) device is a switch device
[   900.068] (II) event1  - (II) gpio-keys: (II) device removed
[   900.088] (**) Option "config_info" "udev:/sys/devices/platform/gpio-keys/input/input6/event1"
[   900.088] (II) XINPUT: Adding extended input device "gpio-keys" (type: KEYBOARD, id 7)
[   900.089] (II) event1  - (II) gpio-keys: (II) is tagged by udev as: Keyboard Switch
[   900.089] (II) event1  - (II) gpio-keys: (II) device is a keyboard
[   900.089] (II) event1  - (II) gpio-keys: (II) device is a switch device
[   900.884] (II) modeset(0): Disabling kernel dirty updates, not required.
[   914.720] (II) event0  - (II) hid-over-i2c 06CB:3370: (II) device removed
[   914.756] (II) event1  - (II) gpio-keys: (II) device removed
[   915.900] (II) event0  - (II) hid-over-i2c 06CB:3370: (II) is tagged by udev as: Touchscreen
[   915.900] (II) event0  - (II) hid-over-i2c 06CB:3370: (II) device is a touch device
[   915.901] (II) event1  - (II) gpio-keys: (II) is tagged by udev as: Keyboard Switch
[   915.901] (II) event1  - (II) gpio-keys: (II) device is a keyboard
[   915.901] (II) event1  - (II) gpio-keys: (II) device is a switch device

Sound doesn't work

Sound deosn't work: I'm pretty sure some files in the kernel source are missing. We probably need to copy them over from linux-tegra and enable the related options

Lightbar doesn't work

With our 4.14.0-rc6 kernel (and previous), the lightbar doesn't work. Apparently there are some changes in the mfd/cros* drivers (cros_ec_lightbar.c) that are missing. We only need to port them to our linux-smaug kernel from Google's linux-smaug.

Can't enter desktop

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.

Bluetooth doesn't work

Using the latest rootfs and the latest kernel (system-4.15-wifi)

[root@alarm ~]# rfkill list
0: hci0: Bluetooth
        Soft blocked: no
        Hard blocked: no
1: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: no
[root@alarm ~]# journalctl -b | grep -i bluetooth
Feb 20 17:05:38 alarm kernel: Bluetooth: HCI UART driver ver 2.3
Feb 20 17:05:38 alarm kernel: Bluetooth: HCI UART protocol H4 registered
Feb 20 17:05:38 alarm kernel: Bluetooth: Generic Bluetooth SDIO driver ver 0.1
Feb 20 17:05:38 alarm kernel: Bluetooth: HIDP (Human Interface Emulation) ver 1.2
Feb 20 17:05:38 alarm kernel: Bluetooth: HIDP socket layer initialized
Feb 20 17:05:42 alarm systemd[1]: sys-subsystem-bluetooth-devices-hci0.device: Changed dead -> plugged
Feb 20 17:05:42 alarm systemd[1]: sys-devices-platform-700b0200.sdhci-mmc_host-mmc1-mmc1:0001-mmc1:0001:3-bluetooth-hci0.device: Changed dead -> plugged
Feb 20 17:05:42 alarm systemd[1]: bluetooth.target: Trying to enqueue job bluetooth.target/start/fail
Feb 20 17:05:42 alarm systemd[1]: bluetooth.target: Installed new job bluetooth.target/start as 101
Feb 20 17:05:42 alarm systemd[1]: bluetooth.service: Installed new job bluetooth.service/start as 102
Feb 20 17:05:42 alarm systemd[1]: bluetooth.target: Enqueued job bluetooth.target/start as 101
Feb 20 17:05:43 alarm systemd-rfkill[240]: A new rfkill device has been added with index 0 and type bluetooth.
Feb 20 17:05:43 alarm systemd-rfkill[240]: Loaded state '0' from /var/lib/systemd/rfkill/platform-700b0200.sdhci:bluetooth.
Feb 20 17:05:44 alarm systemd[1]: bluetooth.service: ConditionPathIsDirectory=/sys/class/bluetooth succeeded.
Feb 20 17:05:44 alarm systemd[1]: bluetooth.service: Passing 0 fds to service
Feb 20 17:05:44 alarm systemd[1]: bluetooth.service: About to execute: /usr/lib/bluetooth/bluetoothd
Feb 20 17:05:44 alarm systemd[1]: bluetooth.service: Forked /usr/lib/bluetooth/bluetoothd as 249
Feb 20 17:05:44 alarm systemd[1]: bluetooth.service: Changed dead -> start
Feb 20 17:05:44 alarm systemd[1]: Starting Bluetooth service...
Feb 20 17:05:44 alarm systemd[249]: bluetooth.service: Executing: /usr/lib/bluetooth/bluetoothd
Feb 20 17:05:44 alarm bluetoothd[249]: Bluetooth daemon 5.48
Feb 20 17:05:44 alarm bluetoothd[249]: Starting SDP server
Feb 20 17:05:44 alarm systemd[1]: bluetooth.service: Got notification message from PID 249 (STATUS=Starting up)
Feb 20 17:05:44 alarm systemd[1]: bluetooth.service: D-Bus name org.bluez now registered by :1.3
Feb 20 17:05:44 alarm systemd[1]: bluetooth.service: Changed start -> running
Feb 20 17:05:44 alarm systemd[1]: bluetooth.service: Job bluetooth.service/start finished, result=done
Feb 20 17:05:44 alarm systemd[1]: Started Bluetooth service.
Feb 20 17:05:44 alarm bluetoothd[249]: kernel lacks bnep-protocol support
Feb 20 17:05:44 alarm bluetoothd[249]: System does not support network plugin
Feb 20 17:05:44 alarm bluetoothd[249]: Bluetooth management interface 1.14 initialized
Feb 20 17:05:44 alarm dbus-daemon[245]: [system] Activating via systemd: service name='org.freedesktop.hostname1' unit='dbus-org.freedesktop.hostname1.service' requested by ':1.3' (uid=0 pid=249 comm="/usr/lib/bluetooth/bluetoothd ")
Feb 20 17:05:44 alarm systemd[1]: bluetooth.service: Got notification message from PID 249 (STATUS=Running)
Feb 20 17:05:44 alarm systemd[1]: bluetooth.service: Got notification message from PID 249 (READY=1)
Feb 20 17:05:44 alarm systemd[1]: bluetooth.target changed dead -> active
Feb 20 17:05:44 alarm systemd[1]: bluetooth.target: Job bluetooth.target/start finished, result=done
Feb 20 17:05:44 alarm systemd[1]: Reached target Bluetooth.
Feb 20 17:05:45 alarm NetworkManager[248]: <info>  [1519146345.3840] Loaded device plugin: NMBluezManager (/usr/lib/NetworkManager/libnm-device-plugin-bluetooth.so)
Feb 20 17:05:46 alarm systemd[318]: sys-subsystem-bluetooth-devices-hci0.device: Changed dead -> plugged
Feb 20 17:05:46 alarm systemd[318]: sys-devices-platform-700b0200.sdhci-mmc_host-mmc1-mmc1:0001-mmc1:0001:3-bluetooth-hci0.device: Changed dead -> plugged
Feb 20 17:07:20 alarm systemd[542]: sys-devices-platform-700b0200.sdhci-mmc_host-mmc1-mmc1:0001-mmc1:0001:3-bluetooth-hci0.device: Changed dead -> plugged
Feb 20 17:07:20 alarm systemd[542]: sys-subsystem-bluetooth-devices-hci0.device: Changed dead -> plugged
Feb 20 17:08:26 alarm systemd[542]: obex.service: About to execute: /usr/lib/bluetooth/obexd
Feb 20 17:08:26 alarm systemd[542]: obex.service: Forked /usr/lib/bluetooth/obexd as 987
Feb 20 17:08:26 alarm systemd[542]: Starting Bluetooth OBEX service...
Feb 20 17:08:26 alarm systemd[987]: obex.service: Executing: /usr/lib/bluetooth/obexd
Feb 20 17:08:26 alarm systemd[542]: Started Bluetooth OBEX service.

Bluetoothctl:

[root@alarm ~]# bluetoothctl 
Agent registered
[bluetooth]# list
[bluetooth]# show
No default controller available
[bluetooth]# scan on
No default controller available
[bluetooth]# power on
No default controller available
[bluetooth]# exit
Agent unregistered
[root@alarm ~]# ls -la /dev/ttyTHS2
crw-rw---- 1 root uucp 241, 2 Feb 20 17:05 /dev/ttyTHS2
[root@alarm ~]# ls -la /sys/class/bluetooth/hci0/
total 0
drwxr-xr-x 4 root root    0 Feb 20 17:05 .
drwxr-xr-x 3 root root    0 Feb 20 17:05 ..
lrwxrwxrwx 1 root root    0 Feb 20 17:11 device -> ../../../mmc1:0001:3
drwxr-xr-x 2 root root    0 Feb 20 17:11 power
drwxr-xr-x 3 root root    0 Feb 20 17:05 rfkill0
lrwxrwxrwx 1 root root    0 Feb 20 17:05 subsystem -> ../../../../../../../../../class/bluetooth
-rw-r--r-- 1 root root 4096 Feb 20 17:05 uevent

Ramdisk edits:
denysvitali/smaug-custom-initram@a7abf06

WiFi Broken Again?

I seem to be having issues similar to those outlines in #3 . But for me the wireless still doesn't work. I used the get_firmware script and your latest v4.19 boot img (I couldn't manage to make a signed image on my own).

I love this project! Everything is working but wireless (I can get by with ethernet in a pinch). I don't think I'm quite the kernel hacker you are. Any pointers or advice on getting my wireless up would be greatly appreciated! Also, please let me know what info you might need. Happy to carry out tests and do diagnostics.

Why Linux distros aren't ported to phones or tablets?

delete

Edit by @denysvitali

The original question was the following (I don't know why the author decided to remove it):

Nice work man! With this project.

I wanted to know for quite some time why linux operating systems are not ported to phones or tablets with android like on they are on desktops and laptops. I know linux can run on various devices with different CPU architectures, I use linux daily, but why it is so hard to run some linux OS natively on android based device with linux kernel?

I know you can run linux on android with linux deploy, but not natively. Is it just because companies are not interested in porting linux to phones and tablets?

thx for reply

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.