[Openchrome-devel] drm-next-4.13 Not linking

Kevin Brace kevinbrace at gmx.com
Tue Nov 7 22:18:58 UTC 2017


Hi latalante,

For OpenChrome DRM (drm-openchrome) development, I typically use Xubuntu 16.04 with the latest Canonical stock Linux kernel and then install drm-next over it (drm-next-4.13 branch).
I also use Xubuntu 14.04 and Debian 8 for some computers for the development of drm-next-3.19 branch.
I keep two branches roughly the same except for small differences between the two versions (Linux kernel version specific differences).
I am still planning to publish the precise instructions on how to compile the Linux kernel eventually, but I have been concentrating on the OpenChrome DRM development itself, so this may not happen for several more weeks.
That being said, here is the preview version of the instructions on how to compile and build OpenChrome DRM.
I assume the use of a Ubuntu based OS and drm-next-4.13 branch.

1) Install a few packages

sudo apt-get install git
sudo apt-get install libssl-dev
sudo apt-get install libncurses5-dev


2) Change initramfs build behavior

cd /etc/initramfs-tools/
sudo mousepad initramfs.conf

Change MODULES=most to MODULES=dep.
Save the file.
This is necessary for computers with < 768 MB RAM.
It also reduces boot time somewhat.


3) Clone the repository

git clone git://anongit.freedesktop.org/openchrome/drm-openchrome
git branch drm-next-4.13 origin/drm-next-4.13
git checkout drm-next-4.13
cd drm-openchrome


4) Edit .config

cp /boot/config-$(uname -r) ./.config

Regarding .config file, make sure CONFIG_DRM_VIA is set to 'm'.

CONFIG_DRM_VIA=m

Save the file.


5) Run through menuconfig

make menuconfig

Save the file when exiting menuconfig so that .config is updated.


6) Compile the Linux kernel.

make

This is basically a full compilation, so it can take anywhere from 7 hours to 24 hours, depending on the speed of the computer.
For HP 2133 (VIA C7-M 1.2 GHz), it takes about 24 hours with an SSD.
Since you appear to have Intel Core 2 Duo, it should take about 7 hours.


7) Install the Linux kernel for the first time.

sudo make modules_install
sudo make install


8) Recompilation (optional)

When you are building it for the subsequent times, you can take a short cut.

git pull --all
make
sudo cp ./drivers/gpu/drm/openchrome/openchrome.ko /lib/modules/4.13.0-rc5+/kernel/drivers/gpu/drm/openchrome/
sudo make install

9) Deleting the Linux kernel (optional)

cd /lib/modules
sudo rm -R ./4.13.0-rc5+
sudo update-grub


Assuming that I did not make a mistake, you should be able to compile the Linux kernel.
Also, please use the very latest OpenChrome DDX (Version 0.6.162).
OpenChrome DDX no longer looks for via.ko for the DRM.
It looks for openchrome.ko for KMS support.
    Regarding stability, standby resume now works, but changing the screen resolution via OS will crash the X server.
I have not found a solution to it yet, but now have a idea what might be going wrong.
Other than that, at least for VN896 chipset, you should get about the same performance level.

Kevin Brace
OpenChrome Project maintainer / developer


> Date: Sat, 28 Oct 2017 12:08:35 +0200
> From: latalante at cock.li
> To: openchrome-devel at lists.freedesktop.org
> Subject: [Openchrome-devel] drm-next-4.13 Not linking
> 
> For two months I have been trying to build and continue to try 
> unsuccessfully. Currently compiled already but not linked.
> 
> LD      vmlinux.o
> MODPOST vmlinux.o
> drivers/gpu/drm/openchrome/via_drv.o: In function `via_driver_unload':
> via_drv.c:(.text+0x45f): undefined reference to `ttm_bo_unref'
> via_drv.c:(.text+0x490): undefined reference to `ttm_bo_unref'
> via_drv.c:(.text+0x4b4): undefined reference to `ttm_bo_unref'
> drivers/gpu/drm/openchrome/via_drv.o: In function `via_driver_load':
> via_drv.c:(.text+0x9e2): undefined reference to `ttm_bo_init_mm'
> drivers/gpu/drm/openchrome/via_ioc32.o: In function `via_gem_state':
> via_ioc32.c:(.text+0x30d): undefined reference to 
> `ttm_bo_del_sub_from_lru'
> via_ioc32.c:(.text+0x32e): undefined reference to `ttm_bo_validate'
> via_ioc32.c:(.text+0x34b): undefined reference to `ttm_bo_add_to_lru'
> drivers/gpu/drm/openchrome/via_ioc32.o: In function `via_gem_wait':
> via_ioc32.c:(.text+0x47a): undefined reference to 
> `ttm_bo_del_sub_from_lru'
> via_ioc32.c:(.text+0x48a): undefined reference to `ttm_bo_wait'
> via_ioc32.c:(.text+0x4a7): undefined reference to `ttm_bo_add_to_lru'
> drivers/gpu/drm/openchrome/ttm_gem.o: In function `ttm_gem_free_object':
> ttm_gem.c:(.text+0x3c): undefined reference to `ttm_bo_unref'
> drivers/gpu/drm/openchrome/ttm_gem.o: In function `ttm_gem_create':
> ttm_gem.c:(.text+0x1fc): undefined reference to `ttm_bo_unref'
> drivers/gpu/drm/openchrome/ttm_gem.o: In function `ttm_mmap':
> ttm_gem.c:(.text+0xba): undefined reference to `ttm_bo_mmap'
> drivers/gpu/drm/openchrome/via_ttm.o: In function `via_init_mem_type':
> via_ttm.c:(.text+0x158): undefined reference to `ttm_bo_manager_func'
> via_ttm.c:(.text+0x17d): undefined reference to `ttm_bo_manager_func'
> via_ttm.c:(.text+0x1f9): undefined reference to `ttm_bo_manager_func'
> drivers/gpu/drm/openchrome/via_ttm.o: In function `via_ttm_tt_populate':
> via_ttm.c:(.text+0x439): undefined reference to `ttm_pool_populate'
> via_ttm.c:(.text+0x5c4): undefined reference to `ttm_pool_unpopulate'
> drivers/gpu/drm/openchrome/via_ttm.o: In function `via_move_to_vram':
> via_ttm.c:(.text+0x905): undefined reference to `ttm_bo_mem_space'
> via_ttm.c:(.text+0x91e): undefined reference to `ttm_bo_move_ttm'
> via_ttm.c:(.text+0x946): undefined reference to `ttm_bo_mem_put'
> drivers/gpu/drm/openchrome/via_ttm.o: In function `via_move_from_vram':
> via_ttm.c:(.text+0xa5f): undefined reference to `ttm_bo_mem_space'
> via_ttm.c:(.text+0xa73): undefined reference to 
> `ttm_tt_set_placement_caching'
> via_ttm.c:(.text+0xa88): undefined reference to `ttm_tt_bind'
> via_ttm.c:(.text+0xab9): undefined reference to `ttm_bo_move_ttm'
> via_ttm.c:(.text+0xaca): undefined reference to `ttm_bo_mem_put'
> drivers/gpu/drm/openchrome/via_ttm.o: In function `via_bo_move':
> via_ttm.c:(.text+0xc6d): undefined reference to `ttm_bo_move_memcpy'
> drivers/gpu/drm/openchrome/via_ttm.o: In function `via_mm_fini':
> via_ttm.c:(.text+0xcd2): undefined reference to `ttm_bo_device_release'
> drivers/gpu/drm/openchrome/via_ttm.o: In function `via_bo_create':
> via_ttm.c:(.text+0xf1e): undefined reference to `ttm_bo_dma_acc_size'
> via_ttm.c:(.text+0xf4f): undefined reference to `ttm_bo_init'
> drivers/gpu/drm/openchrome/via_ttm.o: In function `via_bo_pin':
> via_ttm.c:(.text+0x102a): undefined reference to 
> `ttm_bo_del_sub_from_lru'
> via_ttm.c:(.text+0x105d): undefined reference to `ttm_bo_validate'
> via_ttm.c:(.text+0x1084): undefined reference to `ttm_bo_add_to_lru'
> via_ttm.c:(.text+0x10cb): undefined reference to `ttm_bo_kmap'
> drivers/gpu/drm/openchrome/via_ttm.o: In function `via_mm_init':
> via_ttm.c:(.text+0x1176): undefined reference to `ttm_bo_global_init'
> via_ttm.c:(.text+0x117e): undefined reference to `ttm_bo_global_release'
> via_ttm.c:(.text+0x11ca): undefined reference to `ttm_bo_device_init'
> via_ttm.c:(.text+0x11e6): undefined reference to `ttm_bo_init_mm'
> via_ttm.c:(.text+0x1334): undefined reference to `ttm_bo_init_mm'
> via_ttm.c:(.text+0x13ac): undefined reference to `ttm_bo_clean_mm'
> drivers/gpu/drm/openchrome/via_ttm.o: In function `via_bo_unpin':
> via_ttm.c:(.text+0x1456): undefined reference to 
> `ttm_bo_del_sub_from_lru'
> via_ttm.c:(.text+0x1463): undefined reference to `ttm_bo_kunmap'
> via_ttm.c:(.text+0x1496): undefined reference to `ttm_bo_validate'
> via_ttm.c:(.text+0x14df): undefined reference to `ttm_bo_add_to_lru'
> drivers/gpu/drm/openchrome/via_ttm.o: In function 
> `via_ttm_allocate_kernel_buffer':
> via_ttm.c:(.text+0x157a): undefined reference to `ttm_bo_unref'
> drivers/gpu/drm/openchrome/via_ttm.o: In function 
> `via_ttm_mem_global_release':
> via_ttm.c:(.text+0x265): undefined reference to `ttm_mem_global_release'
> drivers/gpu/drm/openchrome/via_ttm.o: In function 
> `via_ttm_mem_global_init':
> via_ttm.c:(.text+0x275): undefined reference to `ttm_mem_global_init'
> drivers/gpu/drm/openchrome/via_ttm.o: In function `via_ttm_tt_create':
> via_ttm.c:(.text+0x2f4): undefined reference to `ttm_agp_tt_create'
> drivers/gpu/drm/openchrome/via_ttm.o: In function `via_ttm_tt_populate':
> via_ttm.c:(.text+0x505): undefined reference to `ttm_agp_tt_populate'
> via_ttm.c:(.text+0x519): undefined reference to `ttm_dma_populate'
> drivers/gpu/drm/openchrome/via_ttm.o: In function 
> `via_ttm_tt_unpopulate':
> via_ttm.c:(.text+0x67a): undefined reference to `ttm_agp_tt_unpopulate'
> via_ttm.c:(.text+0x686): undefined reference to `ttm_pool_unpopulate'
> via_ttm.c:(.text+0x697): undefined reference to `ttm_dma_unpopulate'
> drivers/gpu/drm/openchrome/via_ttm.o: In function 
> `via_move_blit.constprop.9':
> via_ttm.c:(.text+0x7f1): undefined reference to 
> `ttm_bo_move_accel_cleanup'
> drivers/gpu/drm/openchrome/via_ttm.o:(.data+0x70): undefined reference 
> to `ttm_bo_default_io_mem_pfn'
> drivers/gpu/drm/openchrome/via_fence.o: In function 
> `via_fence_pool_fini.part.5':
> via_fence.c:(.text+0x1cf): undefined reference to `ttm_bo_unref'
> drivers/gpu/drm/openchrome/via_sgdma.o: In function `via_sgdma_destroy':
> via_sgdma.c:(.text+0xa): undefined reference to `ttm_dma_tt_fini'
> drivers/gpu/drm/openchrome/via_sgdma.o: In function 
> `via_sgdma_backend_init':
> via_sgdma.c:(.text+0x3b5): undefined reference to `ttm_dma_tt_init'
> drivers/gpu/drm/openchrome/via_h1_cmdbuf.o: In function 
> `via_dma_cleanup':
> via_h1_cmdbuf.c:(.text+0xaac): undefined reference to `ttm_bo_unref'
> drivers/gpu/drm/openchrome/via_crtc.o: In function `via_crtc_destroy':
> via_crtc.c:(.text+0x344): undefined reference to `ttm_bo_unref'
> drivers/gpu/drm/openchrome/via_crtc.o: In function 
> `via_crtc_cursor_set':
> via_crtc.c:(.text+0x742): undefined reference to `ttm_bo_kmap'
> via_crtc.c:(.text+0x80f): undefined reference to `ttm_bo_kunmap'
> drivers/gpu/drm/openchrome/via_fb.o: In function `via_fb_probe':
> via_fb.c:(.text+0x53d): undefined reference to `ttm_bo_unref'
> 
>


More information about the Openchrome-devel mailing list