Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/01/2023, à 18:14

Orphée

Compiler module kernel i915 sur Synology

Bonjour,

Je me permets de solliciter votre aide concernant un sujet qui ne touche pas directement ubuntu, bien que je m'en serve pour tenter de compiler mon module/driver...

Si je me suis trompé de section, où que c'est totalement hors de propos, je m'en excuse d'avance et tant pis pour moi...

Pour situer le contexte,

Je tente de compiler un driver i915 pour un kernel Synology qui de base en est totalement dépourvu (architecture denverton).
Je ne peux recompiler le kernel complet et je suis obligé de tenter de compiler le tout en "modules".

Je ne sais pas si ce que je tente de faire est faisable, ou si c'est totalement illusoire..

J'ai récupéré les sources du kernel 4.4 correspondant à l'architecture que je tente de compiler.

https://sourceforge.net/projects/dsgpl/ … z/download

Ainsi que le toolkit pour compiler les modules :

https://sourceforge.net/projects/dsgpl/ … z/download

Pardonnez d'avance mon vocabulaire peut être imprécis, j'apprends chaque jour et je teste de façon empirique...
Afin de pouvoir compiler correctement avec la bonne version

les sources sont décompressées dans /opt/denverton/4.4.x
le toolkit est décompressé dans /opt/denverton/ (/opt/denverton/usr ...)

J'ai pris la peine de récupérer le Makefile et le Module.symvers et le .config depuis :

/opt/denverton/usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/lib/modules/DSM-7.0/build/

Pour les copier dans

/opt/denverton/4.4.x/

Il est également nécessaire de créer le fichier suivant :
echo + >.scmversion

Le vermagic doit impérativement correspondre au kernel actuel :
vermagic:       4.4.180+ SMP mod_unload

# uname -a
Linux NAS 4.4.180+ #42962 SMP Tue Oct 18 15:02:07 CST 2022 x86_64 GNU/Linux

J'ai 2 méthodes, je ne sais pas laquelle est la plus "correcte"...

Soit je me place dans le répertoire des sources du kernel pour exécuter la commande make

export KHOME=/opt/denverton
cd /opt/denverton/4.4.x/
make CROSS_COMPILE="$KHOME/usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/bin/x86_64-pc-linux-gnu-" CFLAGS="-I$KHOME/usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/include/" LDFLAGS="-I$KHOME/usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/lib/" RANLIB="/usr/bin/x86_64-linux-gnu-ranlib" LD="/usr/bin/x86_64-linux-gnu-ld" CC="/usr/bin/x86_64-linux-gnu-gcc" LD_LIBRARY_PATH="$KHOME/usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/lib" ARCH=x86_64 M=./drivers/gpu/drm/i915 modules

Soit j'utilise un script "trouvé" :

 #!/bin/bash
 KERNEL_SOURCE="/opt/denverton/4.4.x"
 KHOME="/opt/denverton"



 function dsmmake(){

         make \
                 CROSS_COMPILE="$KHOME/usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/bin/x86_64-pc-linux-gnu-" \
                 CFLAGS="-I$KHOME/usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/include/" \
                 LDFLAGS="-I$KHOME/usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/lib/" \
                 RANLIB="/usr/bin/x86_64-linux-gnu-ranlib" \
                 LD="/usr/bin/x86_64-linux-gnu-ld" \
                 CC="/usr/bin/x86_64-linux-gnu-gcc" \
                 LD_LIBRARY_PATH="$KHOME/usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/lib" \
                 -C "$KHOME/usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/lib/modules/DSM-7.0/build/" \
                 ARCH=x86_64 M=`pwd` modules $@

         }


# cd $KERNEL_SOURCE/drivers/virtio/
# dsmmake CONFIG_VIRTIO=m CONFIG_VIRTIO_MMIO=m CONFIG_VIRTIO_PCI=m CONFIG_VIRTIO_PCI_LEGACY=m CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_INPUT=m
# cd $KERNEL_SOURCE/drivers/net/vmxnet3/
# dsmmake CONFIG_VMXNET3=m CONFIG_BONDING=n
# cd $KERNEL_SOURCE/drivers/message/fusion
# dsmmake CONFIG_FUSION_SPI=m CONFIG_FUSION_FC=m CONFIG_FUSION_CTL=m CONFIG_FUSION_SAS=m
# cd $KERNEL_SOURCE/drivers/net/ethernet/marvell/
# dsmmake CONFIG_SKGE=m CONFIG_SKY2=m CONFIG_BONDING=n
# cd $KERNEL_SOURCE/drivers/net/ethernet/broadcom/
# dsmmake CONFIG_BNX2=m CONFIG_BNX2X=m CONFIG_TIGON3=m CONFIG_BNXT=m   CONFIG_BONDING=n
# cd $KERNEL_SOURCE/drivers/net/ethernet/emulex/benet
# dsmmake CONFIG_BE2NET=m
# cd $KERNEL_SOURCE/drivers/net/
# dsmmake CONFIG_MII=m
# cd $KERNEL_SOURCE/drivers/net/ethernet/realtek/
# dsmmake CONFIG_R8168=m CONFIG_R8169=m CONFIG_R8125=m CONFIG_8139CP=m CONFIG_8139TOO=m
# cd $KERNEL_SOURCE/drivers/net/ethernet/brocade/
# dsmmake CONFIG_BNA=m
# cd $KERNEL_SOURCE/lib/
# dsmmake CONFIG_INTERVAL_TREE=m
# cd $KERNEL_SOURCE/drivers/char/agp/
# dsmmake CONFIG_AGP=m CONFIG_AGP_INTEL=m CONFIG_INTEL_GTT=m
# cd $KERNEL_SOURCE/drivers/acpi/
# dsmmake CONFIG_ACPI_VIDEO=m
# cd $KERNEL_SOURCE/drivers/video/
# dsmmake CONFIG_HDMI=m
# cd $KERNEL_SOURCE/drivers/video/backlight/
# dsmmake CONFIG_BACKLIGHT_CLASS_DEVICE=m
# cd $KERNEL_SOURCE/drivers/gpu/drm/
# dsmmake CONFIG_DRM=m CONFIG_DRM_MIPI_DSI=m CONFIG_DRM_KMS_HELPER=m CONFIG_DRM_KMS_FB_HELPER=m CONFIG_DRM_FBDEV_EMULATION=m CONFIG_DRM_I915=m
# cd $KERNEL_SOURCE/drivers/gpu/drm/panel/
# dsmmake CONFIG_DRM_PANEL=m
# cd $KERNEL_SOURCE/drivers/gpu/drm/i915/
# dsmmake CONFIG_DRM_I915_CAPTURE_ERROR=m CONFIG_DRM_I915_COMPRESS_ERROR=m CONFIG_DRM_I915_USERPTR=m CONFIG_SYNO_DRM_I915_FIX=m
# cd $KERNEL_SOURCE/drivers/
# dsmmake CONFIG_PERF_EVENTS=m
cd $KERNEL_SOURCE/kernel/trace
dsmmake CONFIG_EVENT_TRACING=m

J'adapte ce script au besoin en ajoutant des lignes ou en commentant ce que je ne veux pas compiler...

Dans l'ensemble, ça fonctionne, mais avec le driver i915, c'est relativement complexe, et je ne suis pas sur que ce que je cherche à faire soit faisable...

J'ai vite compris qu'il ne suffisait pas de compiler le module du driver i915.ko pour que cela fonctionne, mais que je devais également compiler toutes les dépendances associées...
Et c'est là que ça se complique...

En essayant simplement de charger le module avec insmod, de belles erreurs apparaissent dans dmesg :

i915: Unknown symbol drm_crtc_add_crc_entry (err 0)
i915: Unknown symbol drm_framebuffer_cleanup (err 0)
i915: Unknown symbol drm_atomic_helper_plane_destroy_state (err 0)
i915: Unknown symbol drm_atomic_helper_check_modeset (err 0)
i915: Unknown symbol drm_dp_clock_recovery_ok (err 0)
i915: Unknown symbol drm_atomic_helper_check_planes (err 0)
i915: Unknown symbol drm_color_lut_extract (err 0)
i915: Unknown symbol drm_kms_helper_poll_fini (err 0)
i915: Unknown symbol drm_lspcon_set_mode (err 0)
i915: Unknown symbol drm_open (err 0)
i915: Unknown symbol drm_rgb_quant_range_selectable (err 0)
i915: Unknown symbol drm_mm_scan_remove_block (err 0)
i915: Unknown symbol drm_is_current_master (err 0)
i915: Unknown symbol drm_mode_vrefresh (err 0)
i915: Unknown symbol drm_poll (err 0)
i915: Unknown symbol drm_framebuffer_plane_width (err 0)
i915: Unknown symbol drm_scdc_set_scrambling (err 0)
i915: Unknown symbol drm_mode_object_find (err 0)
i915: Unknown symbol drm_kms_helper_poll_disable (err 0)
i915: Unknown symbol drm_mode_crtc_set_gamma_size (err 0)
i915: Unknown symbol drm_syncobj_find (err 0)
i915: Unknown symbol drm_connector_register (err 0)
i915: Unknown symbol drm_dp_aux_register (err 0)
i915: Unknown symbol backlight_device_unregister (err 0)
i915: Unknown symbol drm_dp_mst_detect_port (err 0)
i915: Unknown symbol drm_dp_dpcd_read (err 0)
i915: Unknown symbol drm_kms_helper_poll_init (err 0)
i915: Unknown symbol drm_mm_remove_node (err 0)
i915: Unknown symbol __drm_printfn_debug (err 0)
i915: Unknown symbol drm_framebuffer_init (err 0)
i915: Unknown symbol drm_property_create (err 0)
i915: Unknown symbol drm_atomic_add_affected_planes (err 0)
i915: Unknown symbol drm_modeset_unlock_all (err 0)
i915: Unknown symbol hdmi_spd_infoframe_init (err 0)
i915: Unknown symbol drm_dp_update_payload_part2 (err 0)
i915: Unknown symbol drm_mode_probed_add (err 0)
i915: Unknown symbol drm_atomic_add_affected_connectors (err 0)
i915: Unknown symbol mipi_dsi_dcs_read (err 0)
i915: Unknown symbol drm_atomic_helper_disable_plane (err 0)
i915: Unknown symbol drm_rect_calc_hscale (err 0)
i915: Unknown symbol drm_dp_send_power_updown_phy (err 0)
i915: Unknown symbol drm_crtc_vblank_count (err 0)
i915: Unknown symbol drm_dp_mst_port_has_audio (err 0)
i915: Unknown symbol drm_mm_takedown (err 0)
i915: Unknown symbol drm_modeset_lock_all (err 0)
i915: Unknown symbol drm_atomic_helper_shutdown (err 0)
i915: Unknown symbol drm_atomic_state_default_clear (err 0)
i915: Unknown symbol drm_dp_bw_code_to_link_rate (err 0)
i915: Unknown symbol drm_atomic_helper_cleanup_planes (err 0)
i915: Unknown symbol drm_mm_insert_node_in_range (err 0)
i915: Unknown symbol mipi_dsi_create_packet (err 0)
i915: Unknown symbol drm_mode_is_420_only (err 0)
i915: Unknown symbol drm_rect_clip_scaled (err 0)
i915: Unknown symbol drm_framebuffer_plane_height (err 0)
i915: Unknown symbol drm_get_subpixel_order_name (err 0)
i915: Unknown symbol drm_mode_object_get (err 0)
i915: Unknown symbol drm_hdmi_avi_infoframe_from_display_mode (err 0)
i915: Unknown symbol drm_helper_hpd_irq_event (err 0)
i915: Unknown symbol drm_mode_config_init (err 0)
i915: Unknown symbol drm_atomic_helper_crtc_destroy_state (err 0)
i915: Unknown symbol __drm_atomic_state_free (err 0)
i915: Unknown symbol drm_atomic_helper_commit_planes_on_crtc (err 0)
i915: Unknown symbol drm_edid_duplicate (err 0)
i915: Unknown symbol drm_crtc_cleanup (err 0)
i915: Unknown symbol mipi_dsi_attach (err 0)
i915: Unknown symbol drm_get_format_name (err 0)
i915: Unknown symbol drm_connector_list_iter_begin (err 0)
i915: Unknown symbol drm_dp_downstream_max_clock (err 0)
i915: Unknown symbol drm_gem_create_mmap_offset (err 0)
i915: Unknown symbol mipi_dsi_dcs_write (err 0)
i915: Unknown symbol intel_gmch_remove (err 0)
i915: Unknown symbol drm_encoder_cleanup (err 0)
i915: Unknown symbol drm_connector_unregister (err 0)
i915: Unknown symbol drm_dp_read_desc (err 0)
i915: Unknown symbol __drm_printfn_seq_file (err 0)
i915: Unknown symbol drm_modeset_acquire_init (err 0)
i915: Unknown symbol drm_gem_prime_handle_to_fd (err 0)
i915: Unknown symbol drm_atomic_helper_setup_commit (err 0)
i915: Unknown symbol drm_detect_hdmi_monitor (err 0)
i915: Unknown symbol drm_atomic_helper_duplicate_state (err 0)
i915: Unknown symbol interval_tree_iter_first (err 0)
i915: Unknown symbol drm_format_plane_cpp (err 0)
i915: Unknown symbol drm_dp_mst_topology_mgr_init (err 0)
i915: Unknown symbol drm_mode_object_put (err 0)
i915: Unknown symbol drm_pci_alloc (err 0)
i915: Unknown symbol drm_crtc_vblank_get (err 0)
i915: Unknown symbol drm_crtc_send_vblank_event (err 0)
i915: Unknown symbol drm_dp_link_train_channel_eq_delay (err 0)
i915: Unknown symbol drm_crtc_accurate_vblank_count (err 0)
i915: Unknown symbol drm_dp_aux_init (err 0)
i915: Unknown symbol drm_mode_debug_printmodeline (err 0)
i915: Unknown symbol drm_rect_rotate (err 0)
i915: Unknown symbol intel_gtt_insert_sg_entries (err 0)
i915: Unknown symbol drm_dev_init (err 0)
i915: Unknown symbol drm_irq_uninstall (err 0)
i915: Unknown symbol drm_dp_mst_get_edid (err 0)
i915: Unknown symbol drm_clflush_virt_range (err 0)
i915: Unknown symbol drm_dp_get_adjust_request_pre_emphasis (err 0)
i915: Unknown symbol drm_mode_create_aspect_ratio_property (err 0)
i915: Unknown symbol drm_gem_private_object_init (err 0)
i915: Unknown symbol drm_dp_dual_mode_detect (err 0)
i915: Unknown symbol drm_crtc_vblank_reset (err 0)
i915: Unknown symbol drm_gem_dmabuf_export (err 0)
i915: Unknown symbol drm_atomic_helper_connector_destroy_state (err 0)
i915: Unknown symbol drm_connector_list_iter_end (err 0)
i915: Unknown symbol drm_syncobj_replace_fence (err 0)
i915: Unknown symbol drm_atomic_set_crtc_for_plane (err 0)
i915: Unknown symbol intel_gtt_get (err 0)
i915: Unknown symbol drm_mode_hsync (err 0)
i915: Unknown symbol drm_lspcon_get_mode (err 0)
i915: Unknown symbol drm_gem_mmap (err 0)
i915: Unknown symbol drm_mode_create (err 0)
i915: Unknown symbol drm_property_create_enum (err 0)
i915: Unknown symbol drm_atomic_helper_legacy_gamma_set (err 0)
i915: Unknown symbol drm_ioctl (err 0)
i915: Unknown symbol drm_printk (err 0)
i915: Unknown symbol drm_plane_cleanup (err 0)
i915: Unknown symbol drm_mode_set_crtcinfo (err 0)
i915: Unknown symbol drm_dev_printk (err 0)
i915: Unknown symbol drm_gem_prime_fd_to_handle (err 0)
i915: Unknown symbol drm_atomic_get_crtc_state (err 0)
i915: Unknown symbol drm_gem_object_free (err 0)
i915: Unknown symbol drm_crtc_wait_one_vblank (err 0)
i915: Unknown symbol drm_debug (err 0)
i915: Unknown symbol acpi_video_unregister (err 0)
i915: Unknown symbol drm_modeset_lock (err 0)
i915: Unknown symbol drm_gem_vm_close (err 0)
i915: Unknown symbol drm_dp_mst_dump_topology (err 0)
i915: Unknown symbol drm_modeset_unlock (err 0)
i915: Unknown symbol acpi_video_get_backlight_type (err 0)
i915: Unknown symbol drm_gem_vm_open (err 0)
i915: Unknown symbol drm_mode_connector_update_edid_property (err 0)
i915: Unknown symbol drm_kms_helper_poll_enable (err 0)
i915: Unknown symbol drm_connector_init (err 0)
i915: Unknown symbol drm_debugfs_create_files (err 0)
i915: Unknown symbol drm_modeset_lock_all_ctx (err 0)
i915: Unknown symbol mipi_dsi_generic_write (err 0)
i915: Unknown symbol drm_atomic_set_fb_for_plane (err 0)
i915: Unknown symbol drm_dp_aux_unregister (err 0)
i915: Unknown symbol drm_dp_atomic_find_vcpi_slots (err 0)
i915: Unknown symbol drm_property_add_enum (err 0)
i915: Unknown symbol drm_dp_atomic_release_vcpi_slots (err 0)
i915: Unknown symbol __drm_atomic_helper_connector_reset (err 0)
i915: Unknown symbol drm_add_edid_modes (err 0)
i915: Unknown symbol drm_dp_downstream_max_bpc (err 0)
i915: Unknown symbol interval_tree_iter_next (err 0)
i915: Unknown symbol drm_read (err 0)
i915: Unknown symbol drm_gem_object_release (err 0)
i915: Unknown symbol drm_dp_mst_topology_mgr_suspend (err 0)
i915: Unknown symbol drm_probe_ddc (err 0)
i915: Unknown symbol drm_mm_scan_color_evict (err 0)
i915: Unknown symbol drm_atomic_state_init (err 0)
i915: Unknown symbol drm_plane_from_index (err 0)
i915: Unknown symbol drm_crtc_vblank_on (err 0)
i915: Unknown symbol drm_connector_attach_scaling_mode_property (err 0)
i915: Unknown symbol drm_dp_get_adjust_request_voltage (err 0)
i915: Unknown symbol drm_dp_link_train_clock_recovery_delay (err 0)
i915: Unknown symbol intel_gtt_chipset_flush (err 0)
i915: Unknown symbol drm_mm_reserve_node (err 0)
i915: Unknown symbol drm_dp_mst_reset_vcpi_slots (err 0)
i915: Unknown symbol drm_gem_handle_create (err 0)
i915: Unknown symbol drm_atomic_set_crtc_for_connector (err 0)
i915: Unknown symbol drm_atomic_helper_check_plane_state (err 0)
i915: Unknown symbol drm_rect_rotate_inv (err 0)
i915: Unknown symbol drm_crtc_init_with_planes (err 0)
i915: Unknown symbol drm_helper_probe_detect (err 0)
i915: Unknown symbol drm_mode_create_tv_properties (err 0)
i915: Unknown symbol drm_mode_duplicate (err 0)
i915: Unknown symbol drm_atomic_helper_prepare_planes (err 0)
i915: Unknown symbol drm_atomic_state_default_release (err 0)
i915: Unknown symbol drm_object_attach_property (err 0)
i915: Unknown symbol drm_helper_mode_fill_fb_struct (err 0)
i915: Unknown symbol drm_crtc_vblank_put (err 0)
i915: Unknown symbol drm_mode_set_name (err 0)
i915: Unknown symbol drm_clflush_sg (err 0)
i915: Unknown symbol drm_atomic_helper_commit_cleanup_done (err 0)
i915: Unknown symbol drm_dev_unregister (err 0)
i915: Unknown symbol drm_atomic_commit (err 0)
i915: Unknown symbol drm_noop (err 0)
i915: Unknown symbol drm_mode_copy (err 0)
i915: Unknown symbol drm_mode_connector_set_path_property (err 0)
i915: Unknown symbol drm_dp_link_rate_to_bw_code (err 0)
i915: Unknown symbol remove_conflicting_framebuffers (err 0)
i915: Unknown symbol drm_atomic_state_alloc (err 0)
i915: Unknown symbol drm_dp_downstream_debug (err 0)
i915: Unknown symbol drm_irq_install (err 0)
i915: Unknown symbol drm_mode_connector_attach_encoder (err 0)
i915: Unknown symbol drm_mm_init (err 0)
i915: Unknown symbol drm_dev_put (err 0)
i915: Unknown symbol drm_syncobj_free (err 0)
i915: Unknown symbol drm_dp_check_act_status (err 0)
i915: Unknown symbol drm_dp_mst_deallocate_vcpi (err 0)
i915: Unknown symbol drm_mm_scan_init_with_range (err 0)
i915: Unknown symbol drm_dp_dual_mode_set_tmds_output (err 0)
i915: Unknown symbol drm_handle_vblank (err 0)
i915: Unknown symbol drm_atomic_helper_set_config (err 0)
i915: Unknown symbol drm_rect_debug_print (err 0)
i915: Unknown symbol drm_atomic_helper_update_legacy_modeset_state (err 0)
i915: Unknown symbol __drm_atomic_helper_crtc_duplicate_state (err 0)
i915: Unknown symbol drm_atomic_helper_connector_duplicate_state (err 0)
i915: Unknown symbol drm_atomic_set_mode_for_crtc (err 0)
i915: Unknown symbol __drm_atomic_helper_plane_duplicate_state (err 0)
i915: Unknown symbol drm_connector_cleanup (err 0)
i915: Unknown symbol drm_dp_channel_eq_ok (err 0)
i915: Unknown symbol drm_dp_mst_allocate_vcpi (err 0)
i915: Unknown symbol drm_universal_plane_init (err 0)
i915: Unknown symbol acpi_video_register (err 0)
i915: Unknown symbol drm_detect_monitor_audio (err 0)
i915: Unknown symbol drm_av_sync_delay (err 0)
i915: Unknown symbol drm_scdc_set_high_tmds_clock_ratio (err 0)
i915: Unknown symbol __drm_atomic_helper_crtc_destroy_state (err 0)
i915: Unknown symbol drm_crtc_enable_color_mgmt (err 0)
i915: Unknown symbol __drm_atomic_helper_connector_duplicate_state (err 0)
i915: Unknown symbol drm_dev_fini (err 0)
i915: Unknown symbol drm_connector_list_iter_next (err 0)
i915: Unknown symbol drm_pci_free (err 0)
i915: Unknown symbol drm_modeset_acquire_fini (err 0)
i915: Unknown symbol drm_dp_mst_hpd_irq (err 0)
i915: Unknown symbol drm_encoder_init (err 0)
i915: Unknown symbol drm_vblank_init (err 0)
i915: Unknown symbol drm_printf (err 0)
i915: Unknown symbol drm_dp_mst_topology_mgr_destroy (err 0)
i915: Unknown symbol drm_kms_helper_hotplug_event (err 0)
i915: Unknown symbol hdmi_infoframe_pack (err 0)
i915: Unknown symbol drm_gem_free_mmap_offset (err 0)
i915: Unknown symbol drm_dp_calc_pbn_mode (err 0)
i915: Unknown symbol intel_gtt_insert_page (err 0)
i915: Unknown symbol drm_atomic_helper_wait_for_flip_done (err 0)
i915: Unknown symbol drm_dp_psr_setup_time (err 0)
i915: Unknown symbol drm_crtc_vblank_off (err 0)
i915: Unknown symbol drm_atomic_helper_commit_duplicated_state (err 0)
i915: Unknown symbol drm_helper_probe_single_connector_modes (err 0)
i915: Unknown symbol drm_plane_create_rotation_property (err 0)
i915: Unknown symbol drm_connector_init_panel_orientation_property (err 0)
i915: Unknown symbol drm_dp_mst_topology_mgr_set_mst (err 0)
i915: Unknown symbol __drm_mm_interval_first (err 0)
i915: Unknown symbol drm_default_rgb_quant_range (err 0)
i915: Unknown symbol drm_modeset_backoff (err 0)
i915: Unknown symbol drm_rect_calc_hscale_relaxed (err 0)
i915: Unknown symbol backlight_device_register (err 0)
i915: Unknown symbol drm_hdmi_avi_infoframe_quant_range (err 0)
i915: Unknown symbol drm_crtc_vblank_waitqueue (err 0)
i915: Unknown symbol drm_rect_calc_vscale_relaxed (err 0)
i915: Unknown symbol intel_enable_gtt (err 0)
i915: Unknown symbol drm_atomic_helper_disable_all (err 0)
i915: Unknown symbol drm_mm_scan_add_block (err 0)
i915: Unknown symbol drm_atomic_get_plane_state (err 0)
i915: Unknown symbol drm_dp_mst_topology_mgr_resume (err 0)
i915: Unknown symbol drm_atomic_helper_swap_state (err 0)
i915: Unknown symbol drm_property_create_range (err 0)
i915: Unknown symbol mipi_dsi_dcs_write_buffer (err 0)
i915: Unknown symbol drm_mode_connector_set_link_status_property (err 0)
i915: Unknown symbol drm_match_cea_mode (err 0)
i915: Unknown symbol drm_mode_destroy (err 0)
i915: Unknown symbol interval_tree_insert (err 0)
i915: Unknown symbol drm_atomic_helper_page_flip (err 0)
i915: Unknown symbol drm_atomic_state_clear (err 0)
i915: Unknown symbol drm_atomic_helper_commit_hw_done (err 0)
i915: Unknown symbol drm_mode_config_reset (err 0)
i915: Unknown symbol drm_format_info (err 0)
i915: Unknown symbol drm_modeset_drop_locks (err 0)
i915: Unknown symbol drm_mode_config_cleanup (err 0)
i915: Unknown symbol drm_gem_dmabuf_release (err 0)
i915: Unknown symbol drm_atomic_helper_wait_for_dependencies (err 0)
i915: Unknown symbol intel_gmch_probe (err 0)
i915: Unknown symbol drm_wait_one_vblank (err 0)
i915: Unknown symbol drm_hdmi_vendor_infoframe_from_display_mode (err 0)
i915: Unknown symbol drm_calc_vbltimestamp_from_scanoutpos (err 0)
i915: Unknown symbol drm_rect_calc_vscale (err 0)
i915: Unknown symbol drm_crtc_arm_vblank_event (err 0)
i915: Unknown symbol drm_dp_dual_mode_max_tmds_clock (err 0)
i915: Unknown symbol drm_atomic_helper_update_plane (err 0)
i915: Unknown symbol drm_get_edid (err 0)
i915: Unknown symbol drm_calc_timestamping_constants (err 0)
i915: Unknown symbol drm_dp_get_dual_mode_type_name (err 0)
i915: Unknown symbol drm_dp_dpcd_write (err 0)
i915: Unknown symbol sync_file_get_fence (err 0)
i915: Unknown symbol drm_get_connector_status_name (err 0)
i915: Unknown symbol drm_atomic_helper_suspend (err 0)
i915: Unknown symbol drm_compat_ioctl (err 0)
i915: Unknown symbol drm_dev_register (err 0)
i915: Unknown symbol interval_tree_remove (err 0)
i915: Unknown symbol drm_dp_update_payload_part1 (err 0)
i915: Unknown symbol intel_gtt_clear_range (err 0)
i915: Unknown symbol drm_atomic_get_connector_state (err 0)
i915: Unknown symbol sync_file_create (err 0)
i915: Unknown symbol drm_prime_gem_destroy (err 0)
i915: Unknown symbol drm_release (err 0)
i915: Unknown symbol drm_mode_get_hv_timing (err 0)
i915: Unknown symbol drm_helper_move_panel_connectors_to_head (err 0)

avec "modinfo i915.ko |grep depend"
j'ai vu ce dont j'avais en théorie besoin :

depends:        drm_kms_helper,drm,iosf_mbi,backlight,video,fb,button,i2c-algo-bit

Je me suis donc motivé pour tenter de compiler chacun de ces modules...
Et chaque pas en avant me fait reculer de deux...

# modinfo drm_kms_helper.ko |grep depends
depends:        drm,fb,fb_sys_fops,cfbfillrect,syscopyarea,cfbimgblt,sysfillrect,sysimgblt,cfbcopyarea

# modinfo drm.ko |grep depends
depends:        drm_panel_orientation_quirks

Sauf que j'arrive à un stade ou je suis bloqué...

Par exemple pour le module drm.ko que j'ai réussi à compiler, je n'arrive pas à le load...
J'ai pourtant compilé et réussi à charger le module drm_panel_orientation_quirks

[93195.319858] drm: Unknown symbol perf_trace_buf_prepare (err 0)
[93195.320541] drm: Unknown symbol sync_file_get_fence (err 0)
[93195.321099] drm: Unknown symbol sync_file_create (err 0)

En fouillant parmis le code des sources du kernel à coup de "grep -r"
J'ai trouvé que pour sync_file* il me fallait compiler le driver sync_file.ko ce que j'ai donc fait, mais je rentre également dans une boucle qui semble sans fin ...

[154602.317656] sync_file: Unknown symbol anon_inode_getfile (err 0)

J'ai donc compilé également anon_inodes.ko

[154610.007294] anon_inodes: Unknown symbol kern_mount_data (err 0)
[154610.007914] anon_inodes: Unknown symbol dynamic_dname (err 0)

mais arrivé là, je bloque et ne trouve pas quoi compiler dans les sources...

même chose pour "perf_trace_buf_prepare"
J'ai trouvé que ça semble ce situer ici : kernel/trace/trace_event_perf.c
qui semble donc être :
kernel/trace/Makefile:obj-$(CONFIG_EVENT_TRACING) += trace_event_perf.o

Mais si je tente de le compiler, ça tombe en erreur :

/opt/denverton/4.4.x# make CROSS_COMPILE="$KHOME/usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/bin/x86_64-pc-linux-gnu-" CFLAGS="-I$KHOME/usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/include/" LDFLAGS="-I$KHOME/usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/lib/" RANLIB="/usr/bin/x86_64-linux-gnu-ranlib" LD="/usr/bin/x86_64-linux-gnu-ld" CC="/usr/bin/x86_64-linux-gnu-gcc" LD_LIBRARY_PATH="$KHOME/usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/lib" ARCH=x86_64 M=./kernel/trace modules CONFIG_EVENT_TRACING=m
  CC [M]  kernel/trace/trace_events.o
In file included from kernel/trace/trace_events.c:19:
include/linux/module.h:128:27: error: redefinition of ‘__inittest’
  128 |  static inline initcall_t __inittest(void)  \
      |                           ^~~~~~~~~~
include/linux/module.h:115:27: note: in expansion of macro ‘module_init’
  115 | #define fs_initcall(fn)   module_init(fn)
      |                           ^~~~~~~~~~~
kernel/trace/trace_events.c:3191:1: note: in expansion of macro ‘fs_initcall’
 3191 | fs_initcall(event_trace_init);
      | ^~~~~~~~~~~
include/linux/module.h:128:27: note: previous definition of ‘__inittest’ was here
  128 |  static inline initcall_t __inittest(void)  \
      |                           ^~~~~~~~~~
include/linux/module.h:107:29: note: in expansion of macro ‘module_init’
  107 | #define early_initcall(fn)  module_init(fn)
      |                             ^~~~~~~~~~~
kernel/trace/trace_events.c:3144:1: note: in expansion of macro ‘early_initcall’
 3144 | early_initcall(event_trace_enable_again);
      | ^~~~~~~~~~~~~~
include/linux/module.h:130:6: error: redefinition of ‘init_module’
  130 |  int init_module(void) __attribute__((alias(#initfn)));
      |      ^~~~~~~~~~~
include/linux/module.h:115:27: note: in expansion of macro ‘module_init’
  115 | #define fs_initcall(fn)   module_init(fn)
      |                           ^~~~~~~~~~~
kernel/trace/trace_events.c:3191:1: note: in expansion of macro ‘fs_initcall’
 3191 | fs_initcall(event_trace_init);
      | ^~~~~~~~~~~
include/linux/module.h:130:6: note: previous definition of ‘init_module’ was here
  130 |  int init_module(void) __attribute__((alias(#initfn)));
      |      ^~~~~~~~~~~
include/linux/module.h:107:29: note: in expansion of macro ‘module_init’
  107 | #define early_initcall(fn)  module_init(fn)
      |                             ^~~~~~~~~~~
kernel/trace/trace_events.c:3144:1: note: in expansion of macro ‘early_initcall’
 3144 | early_initcall(event_trace_enable_again);
      | ^~~~~~~~~~~~~~
include/linux/module.h:130:6: warning: ‘init_module’ specifies less restrictive attribute than its target ‘event_trace_enable_again’: ‘cold’ [-Wmissing-attributes]
  130 |  int init_module(void) __attribute__((alias(#initfn)));
      |      ^~~~~~~~~~~
include/linux/module.h:107:29: note: in expansion of macro ‘module_init’
  107 | #define early_initcall(fn)  module_init(fn)
      |                             ^~~~~~~~~~~
kernel/trace/trace_events.c:3144:1: note: in expansion of macro ‘early_initcall’
 3144 | early_initcall(event_trace_enable_again);
      | ^~~~~~~~~~~~~~
kernel/trace/trace_events.c:3131:19: note: ‘init_module’ target declared here
 3131 | static __init int event_trace_enable_again(void)
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from kernel/trace/trace_events.c:19:
include/linux/module.h:130:6: warning: ‘init_module’ specifies less restrictive attribute than its target ‘event_trace_init’: ‘cold’ [-Wmissing-attributes]
  130 |  int init_module(void) __attribute__((alias(#initfn)));
      |      ^~~~~~~~~~~
include/linux/module.h:115:27: note: in expansion of macro ‘module_init’
  115 | #define fs_initcall(fn)   module_init(fn)
      |                           ^~~~~~~~~~~
kernel/trace/trace_events.c:3191:1: note: in expansion of macro ‘fs_initcall’
 3191 | fs_initcall(event_trace_init);
      | ^~~~~~~~~~~
kernel/trace/trace_events.c:3146:19: note: ‘init_module’ target declared here
 3146 | static __init int event_trace_init(void)
      |                   ^~~~~~~~~~~~~~~~
kernel/trace/trace_events.c:2915:19: warning: ‘setup_trace_event’ defined but not used [-Wunused-function]
 2915 | static __init int setup_trace_event(char *str)
      |                   ^~~~~~~~~~~~~~~~~
make[1]: *** [scripts/Makefile.build:276 : kernel/trace/trace_events.o] Erreur 1
make: *** [Makefile:1445 : _module_./kernel/trace] Erreur 2

Et là j'avoue que je ne sais plus où chercher, je n'ai pas les compétances...

Est-ce que ce que je cherche à faire est réalisable sans recompiler le kernel ? (que je n'ai pas le droit de toucher, il est signé)

Merci pour votre aide smile

Dernière modification par Orphée (Le 08/01/2023, à 18:20)

Hors ligne

#2 Le 08/01/2023, à 18:22

xubu1957

Re : Compiler module kernel i915 sur Synology

Bonjour,

Le i915 est le pilote des cartes intel_graphics.

Le NAS est-il doté d'une carte graphique Intel.


Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Résolu] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.                   Membre de Linux-Azur

En ligne

#3 Le 08/01/2023, à 18:25

Orphée

Re : Compiler module kernel i915 sur Synology

Pour dire simplement... On va dire "oui" smile
On est dans l'univers du hacking open source

C'est en effet tout le but...

02:00.0 Display controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06)
        Subsystem: ASUSTeK Computer Inc. Device 8534
        Flags: fast devsel, IRQ 10
        Memory at fd000000 (64-bit, non-prefetchable) [size=4M]
        Memory at e0000000 (64-bit, prefetchable) [size=256M]
        I/O ports at 5000 [size=64]
        Capabilities: [90] MSI: Enable- Count=1/1 Maskable- 64bit-
        Capabilities: [d0] Power Management version 2
        Capabilities: [a4] PCI Advanced Features

Hors ligne

#4 Le 08/01/2023, à 18:28

xubu1957

Re : Compiler module kernel i915 sur Synology

Je vais laisser répondre nos aidants savants. big_smile


Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Résolu] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.                   Membre de Linux-Azur

En ligne

#5 Le 08/01/2023, à 18:42

Orphée

Re : Compiler module kernel i915 sur Synology

Merci !
Je ne sais pas si c'était la meilleure section pour parler de compilation de module pour kernel linux...
J'ai choisi celle qui me semblait la plus adéquat smile

Hors ligne

#6 Le 08/01/2023, à 18:45

xubu1957

Re : Compiler module kernel i915 sur Synology

Si ce n'est pas pour Ubuntu, la Modération pourra toujours déplacer la discussion dans une autre section.


Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Résolu] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.                   Membre de Linux-Azur

En ligne