swaywm / sway

i3-compatible Wayland compositor
https://swaywm.org
MIT License
14.45k stars 1.1k forks source link

Doesn't work on armv7h (RPi2) #143

Closed mkf closed 6 years ago

mkf commented 9 years ago

Hi,

I am running Arch Linux on my Raspberry Pi 2 B, and I have installed sway from the AUR.

When I try to run it in tty, it does nothing.

$ sway
$

When I try to run it on i3, a white window appears for a split second.

Also, apparently returns 0:

$ sway && echo teststring
teststring
$

Are you gonna think of support for the ARM architecture in the near future? I would love to have sway working on my RPi, as Wayland is much more optimized for it then X11.

ddevault commented 9 years ago

Can you run with sway -d 2> sway.log to enable debug logging, and post the contents of sway.log?

ARM support is mostly up to wlc.

mkf commented 9 years ago

Hm, after update which I performed few minutes ago I didn't try -d, and now it outputs some messages.

Contents of sway.log:

Loading config
Handling command 'set $home /home/mf'
Handling command 'set $config /home/mf/.config'
Checking for config at /home/mf/.sway/config
Checking for config at /home/mf/.config/sway/config
Handling command 'set $mod Mod4'
Handling command 'set $term urxvt'
Handling command 'set $menu dmenu_run'
Handling command 'bindsym $mod+Return exec $term'
bindsym - Bound Mod4+Return to command exec urxvt
Handling command 'bindsym $mod+Shift+q kill'
bindsym - Bound Mod4+Shift+q to command kill
Handling command 'bindsym $mod+d exec $menu'
bindsym - Bound Mod4+d to command exec dmenu_run
Handling command 'floating_modifier $mod'
Handling command 'bindsym $mod+Shift+c reload'
bindsym - Bound Mod4+Shift+c to command reload
Handling command 'bindsym $mod+Shift+r restart'
bindsym - Bound Mod4+Shift+r to command restart
Handling command 'bindsym $mod+Shift+e exit'
bindsym - Bound Mod4+Shift+e to command exit
Handling command 'bindsym $mod+h focus left'
bindsym - Bound Mod4+h to command focus left
Handling command 'bindsym $mod+j focus down'
bindsym - Bound Mod4+j to command focus down
Handling command 'bindsym $mod+k focus up'
bindsym - Bound Mod4+k to command focus up
Handling command 'bindsym $mod+l focus right'
bindsym - Bound Mod4+l to command focus right
Handling command 'bindsym $mod+Left focus left'
bindsym - Bound Mod4+Left to command focus left
Handling command 'bindsym $mod+Down focus down'
bindsym - Bound Mod4+Down to command focus down
Handling command 'bindsym $mod+Up focus up'
bindsym - Bound Mod4+Up to command focus up
Handling command 'bindsym $mod+Right focus right'
bindsym - Bound Mod4+Right to command focus right
Handling command 'bindsym $mod+Shift+h move left'
bindsym - Bound Mod4+Shift+h to command move left
Handling command 'bindsym $mod+Shift+j move down'
bindsym - Bound Mod4+Shift+j to command move down
Handling command 'bindsym $mod+Shift+k move up'
bindsym - Bound Mod4+Shift+k to command move up
Handling command 'bindsym $mod+Shift+l move right'
bindsym - Bound Mod4+Shift+l to command move right
Handling command 'bindsym $mod+Shift+Left move left'
bindsym - Bound Mod4+Shift+Left to command move left
Handling command 'bindsym $mod+Shift+Down move down'
bindsym - Bound Mod4+Shift+Down to command move down
Handling command 'bindsym $mod+Shift+Up move up'
bindsym - Bound Mod4+Shift+Up to command move up
Handling command 'bindsym $mod+Shift+Right move right'
bindsym - Bound Mod4+Shift+Right to command move right
Handling command 'bindsym $mod+1 workspace 1'
bindsym - Bound Mod4+1 to command workspace 1
Handling command 'bindsym $mod+2 workspace 2'
bindsym - Bound Mod4+2 to command workspace 2
Handling command 'bindsym $mod+3 workspace 3'
bindsym - Bound Mod4+3 to command workspace 3
Handling command 'bindsym $mod+4 workspace 4'
bindsym - Bound Mod4+4 to command workspace 4
Handling command 'bindsym $mod+5 workspace 5'
bindsym - Bound Mod4+5 to command workspace 5
Handling command 'bindsym $mod+6 workspace 6'
bindsym - Bound Mod4+6 to command workspace 6
Handling command 'bindsym $mod+7 workspace 7'
bindsym - Bound Mod4+7 to command workspace 7
Handling command 'bindsym $mod+8 workspace 8'
bindsym - Bound Mod4+8 to command workspace 8
Handling command 'bindsym $mod+9 workspace 9'
bindsym - Bound Mod4+9 to command workspace 9
Handling command 'bindsym $mod+0 workspace 10'
bindsym - Bound Mod4+0 to command workspace 10
Handling command 'bindsym $mod+Shift+1 move container to workspace 1'
bindsym - Bound Mod4+Shift+1 to command move container to workspace 1
Handling command 'bindsym $mod+Shift+2 move container to workspace 2'
bindsym - Bound Mod4+Shift+2 to command move container to workspace 2
Handling command 'bindsym $mod+Shift+3 move container to workspace 3'
bindsym - Bound Mod4+Shift+3 to command move container to workspace 3
Handling command 'bindsym $mod+Shift+4 move container to workspace 4'
bindsym - Bound Mod4+Shift+4 to command move container to workspace 4
Handling command 'bindsym $mod+Shift+5 move container to workspace 5'
bindsym - Bound Mod4+Shift+5 to command move container to workspace 5
Handling command 'bindsym $mod+Shift+6 move container to workspace 6'
bindsym - Bound Mod4+Shift+6 to command move container to workspace 6
Handling command 'bindsym $mod+Shift+7 move container to workspace 7'
bindsym - Bound Mod4+Shift+7 to command move container to workspace 7
Handling command 'bindsym $mod+Shift+8 move container to workspace 8'
bindsym - Bound Mod4+Shift+8 to command move container to workspace 8
Handling command 'bindsym $mod+Shift+9 move container to workspace 9'
bindsym - Bound Mod4+Shift+9 to command move container to workspace 9
Handling command 'bindsym $mod+Shift+0 move container to workspace 10'
bindsym - Bound Mod4+Shift+0 to command move container to workspace 10
Handling command 'bindsym $mod+h splith'
bindsym - Bound Mod4+h to command splith
Handling command 'bindsym $mod+v splitv'
bindsym - Bound Mod4+v to command splitv
Handling command 'bindsym $mod+s layout stacking'
bindsym - Bound Mod4+s to command layout stacking
Handling command 'bindsym $mod+w layout tabbed'
bindsym - Bound Mod4+w to command layout tabbed
Handling command 'bindsym $mod+e layout toggle split'
bindsym - Bound Mod4+e to command layout toggle split
Handling command 'bindsym $mod+f fullscreen'
bindsym - Bound Mod4+f to command fullscreen
Handling command 'bindsym $mod+Shift+space floating toggle'
bindsym - Bound Mod4+Shift+space to command floating toggle
Handling command 'bindsym $mod+space focus mode_toggle'
bindsym - Bound Mod4+space to command focus mode_toggle
Handling command 'bindsym $mod+a focus parent'
bindsym - Bound Mod4+a to command focus parent
Handling command 'bindsym $mod+Shift+minus move scratchpad'
bindsym - Bound Mod4+Shift+minus to command move scratchpad
Handling command 'bindsym $mod+minus scratchpad show'
bindsym - Bound Mod4+minus to command scratchpad show
[wlc] WLC-1 Chose mode (0) 1280x1024
Output 1 resolution changed to 1280 x 1024
[wlc] /opt/vc/lib/libEGL.so: undefined symbol: glPointSizePointerOES
[wlc] Could not initialize any context
[wlc] Removed bsurface from output (1)
Added output 1:WLC-1
Adding 0x9a8a30 (1, 1280.000000x1024.000000) to 0x357b0 (0, 0.000000x0.000000)
Workspace: Generating new name
Got valid workspace command for target: '1'
Workspace: Found free name 1
Added workspace 1 for output 1
Adding 0x9a3ad0 (2, 1280.000000x1024.000000) to 0x9a8a30 (1, 1280.000000x1024.000000)
Setting focus to 0x9a8a30:1
[wlc] Added output (1)
[wlc] become active
[wlc] Cleanup wlc
[wlc] Closing Xwayland

EDIT: Tried the same on tty and the file is empty (maybe due to i3wm with midori with this issue page open on tty1, though (tried on tty2)).

ddevault commented 9 years ago

That log isn't super helpful. Can you try running orbment instead of sway and see if you get different results?

mkf commented 9 years ago

Tried running sway -d 2> sway.log as the first command after reboot, still an empty file.

Will try orbment in a moment.

Update: Orbment is installing. BTW, if it will finally work for me, could you add armv7h to arch in AUR? I will use sway everyday, so I can be the tester ;)

mkf commented 9 years ago

orbment on tty (printed to stderr, I had to copy using gpm):

wlc: logind: session control granted
wlc: Running on vt 1 (fd 0)
(WARN) wlc: Failed to open X11 display
(WARN) wlc: Failed to open device: /dev/dri/card0
wlc: Closed drm
(WARN) wlc: Could not initialize any backend
(ERROR) wlc: Failed to init compositor
wlc: Parent exit (455)
wlc: Restoring vt 1 (0x4) (fd 0)

orbment on i3 (also stderr, had to copy using mouse) (also, a white window for a split second):

 mf  ~  orbment 
registered plugin orbment () Hook api.
(WARN) Could not open plugins directory: plugins
registered plugin core-dpsm () Core display power management.
registered plugin layout () Layout api.
registered plugin compressor () Compression api.
registered plugin compressor-ppm () Compression to ppm image format.
registered plugin keybind () Keybind api.
registered plugin configuration-ini () Configuration backend for the INI format.
registered plugin core-screenshot () Screenshot functionality.
registered plugin core-functionality () Core functionality.
registered plugin compressor-png () Compression to png image format.
registered plugin configuration () Configuration api.
registered plugin autostart () Launch programs on startup.
registered plugin core-layouts () Core set of layouts.
(WARN) Could not open plugins directory: /home/mf/.local/share/orbment/plugins
Loading plugin 'orbment'
Loading plugin 'configuration'
Loading plugin 'configuration-ini'
(WARN) configuration-ini: Failed to open '/home/mf/.config/orbment/orbment.ini': No such file or directory
Loading plugin 'keybind'
Loading plugin 'core-dpsm'
keybind: Added keybind: Go to sleep (<P-d>)
Loading plugin 'layout'
keybind: Added keybind: cycle clients (<P-h>)
keybind: Added keybind: next layout (<P-w>)
Loading plugin 'compressor'
Loading plugin 'compressor-ppm'
Loading plugin 'compressor-png'
Loading plugin 'core-screenshot'
keybind: Added keybind: take screenshot ppm (none)
keybind: Added keybind: take screenshot png (<SunPrint_Screen>, <P-s>)
Loading plugin 'core-functionality'
keybind: Added keybind: exit (<P-Escape>)
keybind: Added keybind: close client (<P-q>)
keybind: Added keybind: spawn terminal (<P-Return>)
keybind: Added keybind: spawn bemenu (<P-p>)
keybind: Added keybind: toggle fullscreen (<P-f>)
keybind: Added keybind: focus next output (<P-l>)
keybind: Added keybind: focus next client (<P-j>)
keybind: Added keybind: focus previous client (<P-k>)
keybind: Added keybind: focus space 0 (<P-1>, <P-KP_1>)
keybind: Added keybind: focus space 1 (<P-2>, <P-KP_2>)
keybind: Added keybind: focus space 2 (<P-3>, <P-KP_3>)
keybind: Added keybind: focus space 3 (<P-4>, <P-KP_4>)
keybind: Added keybind: focus space 4 (<P-5>, <P-KP_5>)
keybind: Added keybind: focus space 5 (<P-6>, <P-KP_6>)
keybind: Added keybind: focus space 6 (<P-7>, <P-KP_7>)
keybind: Added keybind: focus space 7 (<P-8>, <P-KP_8>)
keybind: Added keybind: focus space 8 (<P-9>, <P-KP_9>)
keybind: Added keybind: focus space 9 (<P-0>, <P-KP_0>)
keybind: Added keybind: focus left space (<P-Left>)
keybind: Added keybind: focus right space (<P-Right>)
keybind: Added keybind: move to space 0 (<P-F1>)
keybind: Added keybind: move to space 1 (<P-F2>)
keybind: Added keybind: move to space 2 (<P-F3>)
keybind: Added keybind: move to space 3 (<P-F4>)
keybind: Added keybind: move to space 4 (<P-F5>)
keybind: Added keybind: move to space 5 (<P-F6>)
keybind: Added keybind: move to space 6 (<P-F7>)
keybind: Added keybind: move to space 7 (<P-F8>)
keybind: Added keybind: move to space 8 (<P-F9>)
keybind: Added keybind: move to space 9 (<P-F0>)
keybind: Added keybind: move to output 0 (<P-z>)
keybind: Added keybind: move to output 1 (<P-x>)
keybind: Added keybind: move to output 2 (<P-c>)
keybind: Added keybind: focus view (<B0>)
Loading plugin 'autostart'
Loading plugin 'core-layouts'
layout: Added layout: nmaster
layout: Added layout: grid
layout: Added layout: monocle
keybind: Added keybind: grow nmaster (<P-i>)
keybind: Added keybind: shrink nmaster (<P-o>)
Loaded 13/13 plugins
-- Orbment started --
wlc: Activating tty
wlc: WLC-1 Chose mode (0) 1280x1024
(WARN) wlc: /opt/vc/lib/libEGL.so: undefined symbol: glPointSizePointerOES
(WARN) wlc: Could not initialize any context
wlc: Removed bsurface from output (1)
wlc: Added output (1)
wlc: become active
wlc: Cleanup wlc
wlc: Closing Xwayland
keybind: Removed keybind: Go to sleep
keybind: Removed keybind: exit
keybind: Removed keybind: close client
keybind: Removed keybind: spawn terminal
keybind: Removed keybind: spawn bemenu
keybind: Removed keybind: toggle fullscreen
keybind: Removed keybind: focus next output
keybind: Removed keybind: focus next client
keybind: Removed keybind: focus previous client
keybind: Removed keybind: focus space 0
keybind: Removed keybind: focus space 1
keybind: Removed keybind: focus space 2
keybind: Removed keybind: focus space 3
keybind: Removed keybind: focus space 4
keybind: Removed keybind: focus space 5
keybind: Removed keybind: focus space 6
keybind: Removed keybind: focus space 7
keybind: Removed keybind: focus space 8
keybind: Removed keybind: focus space 9
keybind: Removed keybind: focus left space
keybind: Removed keybind: focus right space
keybind: Removed keybind: move to space 0
keybind: Removed keybind: move to space 1
keybind: Removed keybind: move to space 2
keybind: Removed keybind: move to space 3
keybind: Removed keybind: move to space 4
keybind: Removed keybind: move to space 5
keybind: Removed keybind: move to space 6
keybind: Removed keybind: move to space 7
keybind: Removed keybind: move to space 8
keybind: Removed keybind: move to space 9
keybind: Removed keybind: move to output 0
keybind: Removed keybind: move to output 1
keybind: Removed keybind: move to output 2
keybind: Removed keybind: focus view
keybind: Removed keybind: grow nmaster
keybind: Removed keybind: shrink nmaster
layout: Removed layout: nmaster
layout: Removed layout: grid
layout: Removed layout: monocle
keybind: Removed keybind: cycle clients
keybind: Removed keybind: next layout
keybind: Removed keybind: take screenshot ppm
keybind: Removed keybind: take screenshot png
Deloaded plugins
-- Orbment is gone, bye bye! --
wlc: Parent exit (1327)
 mf  ~  
ddevault commented 9 years ago

@Cloudef

Cloudef commented 9 years ago

AFAIK pi needs to be supported separately as it does not have standard way to do contextes. (But I've heard there is recently some DRM enabled kernel)

As you see in logs, it fails to init any backend.

ddevault commented 9 years ago

http://dri.freedesktop.org/wiki/VC4/

You could try using the appropriate kernel branch if you like.

Cloudef commented 9 years ago

(WARN) wlc: /opt/vc/lib/libEGL.so: undefined symbol: glPointSizePointerOES <- I'm also not sure what this is, but it most likely isn't the real EGL implementation?

pickfire commented 8 years ago

+1, I can't run sway too. Maybe this is the reason why velox doesn't work too.

soredake commented 8 years ago

Same problem, sway not starting and returns absolutely nothing.

pickfire commented 8 years ago

@fenque, can you please try velox.

soredake commented 8 years ago

@pickfire, i trying, but swc unable to fine wld Makefile:69: *** Could not find package wld.

pickfire commented 8 years ago

@fenque, I had that error too. Look at https://github.com/michaelforney/swc/issues/26#issuecomment-144071004.

ddevault commented 8 years ago

The new driver has been upstreamed in linux 4.5, but the devicetree wasn't updated. I would guess that we'll see Sway running on the Pi on linux 4.6, though a particularly dedicated person could probably get it working now.

pickfire commented 8 years ago

I uses the pi on arch which currently uses linux 4.1.20, I heard that 4.5 is a bit experimental. I will try it out if I get a chance.

ddevault commented 8 years ago

I wouldn't expect much without that devicetree.

pickfire commented 8 years ago

What do you mean by that devicetree? I am actually not very sure what is devicetree.

ddevault commented 8 years ago

It's a thing Linux uses on ARM to describe the interface to devices like a GPU.

ddevault commented 7 years ago

This seems to work with some additional configuration - running Sway on a misconfigured Raspberry Pi will now print details about how to configure it correctly. Please test this and let me know how it goes!

pickfire commented 7 years ago

@SirCmpwn Tested and working but sway is awfully slow when running on the pi even with gpu_mem=128. The display start to lag on mouse movement or keyboard input when I start an X-window application.

ddevault commented 7 years ago

Gotcha. Out of curiousity, can you build wlroots and try out the examples?

pickfire commented 7 years ago

@SirCmpwn I tried building the latest git but it doesn't build. Logs at http://sprunge.us/PaUP

refacto commented 7 years ago

@pickfire Did you try with the latest firmware? I can't reproduce, not on raspbian nor arch.

pickfire commented 7 years ago

@refacto I don't recall where I tried it, either alarm or alpine (probably not raspbian).

enricoT commented 6 years ago

default_border none this prevent wlc to make work mouse as a whip