Written at 06 Nov 23 , Published on 07 Nov 23
As fast we need to configure kernel to get the displaylink driver (as well as other stuff) in the kernel.
#DRM Stuff
CONFIG_VGA_ARB=y #VGA Arbitration
CONFIG_VGA_ARB_MAX_GPUS=9999 #Maximum number of GPUs (yes i like to set it to 9999 Although I will not plug 9999 gpu to this humble router.)
CONFIG_DRM=y #Enable drm
CONFIG_DRM_UDL=y #Enable udl driver
#Uevent stuff (mainly for mouse and keyboard)
CONFIG_INPUT=y
CONFIG_INPUT_EVBUG=y
CONFIG_INPUT_EVDEV=y
CONFIG_INPUT_KEYBOARD=y
CONFIG_INPUT_MOUSE=y
#Hid stuff (mouse and keyboard driver)
CONFIG_HID=y
CONFIG_HID_BATTERY_STRENGTH=y
CONFIG_HID_GENERIC=y
CONFIG_HID_PID=y
CONFIG_USB_HID=y
#Elogind stuff
CONFIG_CGROUPS #Required by elogind, and therefore necessary to be able to run most desktop environments.
#USB stuff (Needed for udl)
CONFIG_USB=y
CONFIG_USB_COMMON=y
CONFIG_USB_EHCI_HCD=y#Generic driver for USB 2 controller
CONFIG_USB_EHCI_HCD_PLATFORM=y#Generic driver for USB 3 controller
CONFIG_USB_XHCI_HCD=y#Generic driver for USB 3 controller
CONFIG_USB_XHCI_PLATFORM=y#Generic driver for USB 3 controller
Next I enabled the usb storage support in openwrt build config bc I couldn't figure out in the kernel config.
After that, I install the rootfs to a thumb drive and chroot into it.
Next I run that command in chroot to run xorg , edev, xorg, elogind,dbus.
/sbin/udevd& # In order to get mouse and keyboard working. you need to plug them into the rotuer after u run udev (bc of libinput)
dbus-uuidgen --ensure=/etc/machine-id
dbus-daemon --system --nofork --nopidfile &
/lib/elogind/elogind -D&
startxfce4 # it will start xorg for you if u havent start it yet .
Initially, I was trying to run pm os in chroot but armv7 and armhf version of pm os and it didnt work in chroot due to illegal instruction so I did research and I find out there are a arm architecture call armef . The only distro I found that support that is devuan and debian so I builded debian armel rootfs via debootstrap because I cant found a image that i can use.After that i tried to run udev dbus xorg on the rootfs in chroot on the rotuer.It was working fine (the kbd and mouse work too) so I tried to run wayland (sway) and it throwed some error regarding logind isnt running to me so i tried to run systemd logind and systemd logind throwed some error regarding systemd isnt running to me so i tried to desystemd my debian (See Penguin OS Tutorial : How to run debian without systemd ?) and I failed due to some dependency issue (likely due to i am running on debian testing) so i switched to devuan.After that elogind work but sway stil didnt work
Well it is actually ac68u oc (ac68p) but it run a ac68u firmware so it has been unoverclockced.The reason i use it for running xorg , edev, xorg, elogind,dbus bc it is a arm rotuer and has openwrt support.Most rotuer is using a type of mips that isnt supported by most linux distro (including debian).
Openwrt with displaylink (An article from a decade when Direct Rendering Manager isnt a thing.)