顯示具有 grub 標籤的文章。 顯示所有文章
顯示具有 grub 標籤的文章。 顯示所有文章

2012年9月9日 星期日

openSUSE 12.2 開機與登入(KDM)畫面

openSUSE 12.2 使用了 GRUB2 和 plymouth 動畫



1. 因為再這台電腦上使用 nouveau 的驅動時,plymouth 的動畫會亂掉
所以只好安裝 Nvidia 的專利驅動程式
只要再社群套件庫中新增 Nvidia 驅動程式套件庫就可輕鬆安裝 nvidia 驅動
因為 nvidia 不支援 modeset, 所以在切換時會畫面黑掉
如果用 nouveau 應該會比較順


2. 如果你的變色龍看起來很大隻
應該是 GRUB2 選擇了較低的解析度畫面
請察看您的螢幕所支援的解析度
 
然後用 YaST - 系統 - 開機載入器 - 開機載入器選項 - 選擇一個可支援的 VGA 模式


3. 12.2 的 KDM 登入畫面被抱怨了
(這大概是我用 SuSE/openSUSE 以來第一次有人抱怨美工問題)
請到 http://kde-look.org/index.php?xcontentmode=40x41 自己找一個來換吧
openSUSE 的 KDE 系統設定 - 登入畫面(KDM) 功能被閹割了
要自行手動設定
在kde-look 上選定了佈景主題後
您仍可以用 系統設定 - 登入畫面(KDM) 安裝
但無法套用
必須以 root 權限修改 /etc/sysconfig/displaymanager
將 DISPLAYMANAGER_KDM_THEME="openSUSE"
改成別的字串
這字串就是你安裝的佈景主題所在的目錄
例如佈景裝在 /usr/share/kde4/apps/kdm/themes/KStarboard 目錄中
您就改成 DISPLAYMANAGER_KDM_THEME="KStarboard"

4. 您也可以針對主題稍做修改,讓他看起來更有 geeko 的感覺



2012年1月2日 星期一

Acer aspire 4752G 安裝 openSUSE 12.1

老婆新買了筆電:
acer ASPIRE 4752G
CPU: Intel Core i5-2450M 2.5GHz
顯示卡:NVIDIA GeForce 610M with NVIDIA OPTIMUS TECHNOLOGY

openSUSE 12.1 GNOME Live CD 測試:
開機畫面正常,但選擇 Live GNOME 進入後,在 splash 畫面錯亂,
最後螢幕變黑,無法開機
強迫關機,重新開機時按 F2 進入 BIOS 設定畫面
將 Graphic Mode 由 Switchable 改成 Integrated,儲存,離開
再次測試 Live GNOME,這次就可以進入 GNOME 3,
而且是標準模式,有桌面特效
表示可以使用 openSUSE 系統
結束測試

接著要使用 openSUSE 12.1 64-bit DVD 來安裝
光碟放進去卻不會出現 GRUB 的開機畫面(就是選擇安裝的畫面)
而是黑色終端機螢幕,左上角顯示
ELILO boot:....
Loading kernel linux...

跑一陣子之後會直接進入安裝畫面
照著步驟做下去,到選擇安裝位置時,最後決定取消
因為這種方法會要求您將所有的分割區刪除
但我想留著 windows 做多重開機
本以為是需要先將磁碟空間空出,
但用 GParted 重新化分割區後再重做
仍無法僅用空白分割區安裝
系統說:
Your system states that is requires all EFI boot setup,
Since the selected disk does not contain a GPT disk lable
we creat a GPT lable on this disk.
You need to mark all partitions on this disk for removal.

差點就要放棄了,打算改用 Live CD 安裝
後來發現在 ELILO boot:... 出現時按 ESC
就會出現 GRUB 的安裝畫面
而且可以順利將作業系統安裝到所規劃好的磁區
雖然在安裝前摘要有紅字,說 GRUB 所安裝的位置可能無法正常開機
但我還是心一狠就依照預設位置裝了
結果裝完就...
正常開機了

把所有的更新裝一裝,該裝的套件裝一裝,該調的調一調
依照我以前的理解,再裝上 nvidia 的驅動程式應該就大功告成了
興高采烈的重開機,將 BIOS 中的 Graphic Mode 改回 Switchable
結果...
失敗...畫面整個亂掉,無法開啟 X

只好改回用 Integrated 的顯示卡
還要用 safe mode 才進得了 X
先移除 nvidia 驅動程式,重回原點開始找資料

幸好有 Geeko 的加持和 Google 的幫助
最後還是成功了

Geeko 與你同在!

對於 nvidia optimus 的顯示卡,您需要 Bumblebee,
(當然,如果您要放棄使用 nvidia 顯示卡,只用 intel 的顯示卡,在 BIOS 中調就都可以用了)
相關頁面:
https://github.com/Bumblebee-Project/Bumblebee
http://www.martin-juhl.dk/2011/08/ironhide-reporting-for-duty/
http://www.martin-juhl.dk/2011/08/reassemble-of-the-bee/
https://github.com/MrMEEE/bumblebee
雖然還是一個發展中的計劃
至少給了 nvidia 顯示卡的 Linux 使用者一絲的希望

software.opensuse.org 搜尋 bumblebee
(請在搜尋選項中核取「包含使用者的 home project」)
我們要使用新版的 bumblebee
# zypper ar home:Bumblebee-Project:Bumblebee-develop/openSUSE_12.1 bumblebee

您需要 bumblebee VirtualGL
若使用 64 位元系統,可能還需要 VirtualGL-32bit
# zypper in bumblebee VirtualGL


您可能需要手動將您的使用者加入 bumblebee 群組
您可以輕易用 YaST 來完成這件事

預設使用 nouveau 驅動程式
但我沒辦法成功使用 nouveau 驅動程式
(猜測是新的顯示卡還沒辦法被 nouveau 所支援)
所以我還是需要安裝 nvidia 的專利驅動程式

根據參考資料
安裝了 nvidia 專利驅動程式 (nvidia-gfxG02-kmp-desktop nvidia-computeG02 x11-video-nvidiaG02) 之後
將 nvidia 所提供的部份驅動程式移到新的目錄
以避免和 Mesa 以及 xorg-x11-server 所提供的檔案衝突
注意:
所以當您發現 nvidia 顯示卡驅動程式有更新時
以下步驟必須重新再跑一次
我是使用 64 位元作業系統,就直接以電腦上的檔案位置來舉例
若您是使用 32 位元系統,請注意 lib64 要改成 lib,後面就不再說明了
# mkdir -p /usr/lib64/nvidia/xorg/modules/updates/extensions
# mv /usr/X11R6/lib64/libGL* /usr/lib64/nvidia/
# mv /usr/lib64/xorg/modules/updates/extensions/libglx* /usr/lib64/nvidia/xorg/modules/updates/extensions/
# mkdir -p /usr/lib/nvidia
# mv /usr/X11R6/lib/libGL* /usr/lib/nvidia


最後編輯 /etc/bumblebee/bumblebee.conf 修改
DRIVER=nvidia

您可能還需要修改 /etc/sysconfig/kernel
NO_KMS_IN_INITRD="no"

重新開機,看看是否大功告成

精彩放送:在嘗試失敗的過程中拍到的有趣照片

可能是 intel 顯示卡使用了 nvidia 驅動程式所提供的 libglx.so 來運行桌面特效所造成的結果
(按 Alt-Shift+F12 來終止這種特效)
我本來想說可以用就用看看(還蠻炫的)
可惜都不能用

您可以用 glxinfo 來看看是否運作成功
如果沒有錯誤訊息表示 Intel 顯示卡 OK
$ glxinfo
name of display: :0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
GLX_OML_swap_method, GLX_SGI_make_current_read, GLX_SGI_swap_control,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_visual_select_group, GLX_INTEL_swap_event
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_framebuffer_sRGB,
GLX_MESA_copy_sub_buffer, GLX_MESA_multithread_makecurrent,
GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control,
GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap,
GLX_INTEL_swap_event
GLX extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
GLX_MESA_multithread_makecurrent, GLX_MESA_swap_control,
GLX_OML_swap_method, GLX_OML_sync_control, GLX_SGI_make_current_read,
GLX_SGI_swap_control, GLX_SGI_video_sync, GLX_SGIS_multisample,
GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group,
GLX_EXT_texture_from_pixmap, GLX_INTEL_swap_event
OpenGL vendor string: Tungsten Graphics, Inc
OpenGL renderer string: Mesa DRI Intel(R) Sandybridge Mobile
OpenGL version string: 2.1 Mesa 7.11
OpenGL extensions:
GL_ARB_multisample, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color,
GL_EXT_blend_logic_op, GL_EXT_blend_minmax, GL_EXT_blend_subtract,
GL_EXT_copy_texture, GL_EXT_polygon_offset, GL_EXT_subtexture,
GL_EXT_texture_object, GL_EXT_vertex_array, GL_EXT_compiled_vertex_array,
GL_EXT_texture, GL_EXT_texture3D, GL_IBM_rasterpos_clip,
GL_ARB_point_parameters, GL_EXT_draw_range_elements, GL_EXT_packed_pixels,
GL_EXT_point_parameters, GL_EXT_rescale_normal,
GL_EXT_separate_specular_color, GL_EXT_texture_edge_clamp,
GL_SGIS_generate_mipmap, GL_SGIS_texture_border_clamp,
GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod, GL_ARB_framebuffer_sRGB,
GL_ARB_multitexture, GL_EXT_framebuffer_sRGB,
GL_IBM_multimode_draw_arrays, GL_IBM_texture_mirrored_repeat,
GL_3DFX_texture_compression_FXT1, GL_ARB_texture_cube_map,
GL_ARB_texture_env_add, GL_ARB_transpose_matrix,
GL_EXT_blend_func_separate, GL_EXT_fog_coord, GL_EXT_multi_draw_arrays,
GL_EXT_secondary_color, GL_EXT_texture_env_add,
GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod_bias,
GL_INGR_blend_func_separate, GL_NV_blend_square, GL_NV_light_max_exponent,
GL_NV_texgen_reflection, GL_NV_texture_env_combine4,
GL_SUN_multi_draw_arrays, GL_ARB_texture_border_clamp,
GL_ARB_texture_compression, GL_EXT_framebuffer_object,
GL_EXT_texture_env_dot3, GL_MESA_window_pos, GL_NV_packed_depth_stencil,
GL_NV_texture_rectangle, GL_NV_vertex_program, GL_ARB_depth_texture,
GL_ARB_occlusion_query, GL_ARB_shadow, GL_ARB_texture_env_combine,
GL_ARB_texture_env_crossbar, GL_ARB_texture_env_dot3,
GL_ARB_texture_mirrored_repeat, GL_ARB_window_pos, GL_ATI_envmap_bumpmap,
GL_EXT_stencil_two_side, GL_EXT_texture_cube_map, GL_NV_depth_clamp,
GL_NV_vertex_program1_1, GL_APPLE_client_storage, GL_APPLE_packed_pixels,
GL_APPLE_vertex_array_object, GL_ARB_draw_buffers,
GL_ARB_fragment_program, GL_ARB_fragment_shader, GL_ARB_shader_objects,
GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_ATI_draw_buffers,
GL_ATI_texture_env_combine3, GL_EXT_shadow_funcs, GL_EXT_stencil_wrap,
GL_MESA_pack_invert, GL_MESA_ycbcr_texture, GL_ARB_depth_clamp,
GL_ARB_fragment_program_shadow, GL_ARB_half_float_pixel,
GL_ARB_point_sprite, GL_ARB_shading_language_100, GL_ARB_sync,
GL_ARB_texture_non_power_of_two, GL_ARB_vertex_buffer_object,
GL_ATI_blend_equation_separate, GL_EXT_blend_equation_separate,
GL_OES_read_format, GL_ARB_color_buffer_float, GL_ARB_pixel_buffer_object,
GL_ARB_texture_compression_rgtc, GL_ARB_texture_rectangle,
GL_EXT_pixel_buffer_object, GL_EXT_texture_compression_rgtc,
GL_EXT_texture_rectangle, GL_EXT_texture_sRGB, GL_ARB_framebuffer_object,
GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample,
GL_EXT_packed_depth_stencil, GL_APPLE_object_purgeable,
GL_ARB_vertex_array_object, GL_ATI_separate_stencil, GL_EXT_draw_buffers2,
GL_EXT_gpu_program_parameters, GL_EXT_texture_env_combine,
GL_EXT_texture_sRGB_decode, GL_EXT_timer_query, GL_OES_EGL_image,
GL_ARB_copy_buffer, GL_ARB_half_float_vertex, GL_ARB_map_buffer_range,
GL_ARB_texture_rg, GL_ARB_texture_swizzle, GL_ARB_vertex_array_bgra,
GL_EXT_separate_shader_objects, GL_EXT_texture_swizzle,
GL_EXT_vertex_array_bgra, GL_NV_conditional_render,
GL_ARB_ES2_compatibility, GL_ARB_draw_elements_base_vertex,
GL_ARB_explicit_attrib_location, GL_ARB_fragment_coord_conventions,
GL_ARB_provoking_vertex, GL_ARB_sampler_objects, GL_ARB_seamless_cube_map,
GL_ARB_shader_texture_lod, GL_EXT_provoking_vertex, GL_EXT_texture_snorm,
GL_MESA_texture_signed_rgba, GL_ARB_robustness
glu version: 1.3
glu extensions:
GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess

visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav
id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat
----------------------------------------------------------------------
0x21 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x22 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x8e 24 tc 0 24 0 r . . 8 8 8 0 0 0 0 0 0 0 0 0 0 None
0x8f 24 tc 0 24 0 r y . 8 8 8 0 0 0 0 0 0 0 0 0 0 None
0x90 24 tc 0 24 0 r y . 8 8 8 0 0 0 0 0 0 0 0 0 0 None
0x91 24 tc 0 24 0 r . . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
0x92 24 tc 0 24 0 r y . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
0x93 24 tc 0 24 0 r y . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
0x94 24 tc 0 32 0 r . . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
0x95 24 tc 0 32 0 r y . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
0x96 24 tc 0 32 0 r y . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
0x97 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x98 24 tc 0 24 0 r y . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
0x99 24 tc 0 24 0 r y . 8 8 8 0 0 24 8 16 16 16 0 0 0 Slow
0x9a 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x9b 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow
0x9c 24 dc 0 24 0 r . . 8 8 8 0 0 0 0 0 0 0 0 0 0 None
0x9d 24 dc 0 24 0 r y . 8 8 8 0 0 0 0 0 0 0 0 0 0 None
0x9e 24 dc 0 24 0 r y . 8 8 8 0 0 0 0 0 0 0 0 0 0 None
0x9f 24 dc 0 24 0 r . . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
0xa0 24 dc 0 24 0 r y . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
0xa1 24 dc 0 24 0 r y . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
0xa2 24 dc 0 32 0 r . . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
0xa3 24 dc 0 32 0 r y . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
0xa4 24 dc 0 32 0 r y . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
0xa5 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0xa6 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0xa7 24 dc 0 24 0 r y . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
0xa8 24 dc 0 24 0 r y . 8 8 8 0 0 24 8 16 16 16 0 0 0 Slow
0xa9 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0xaa 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow
0x5d 32 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None

接著用 optirun glxinfo 看 nvidia 顯示卡是否成功啟動
$ optirun glxinfo
name of display: :0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: VirtualGL
server glx version string: 1.4
server glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_visual_info,
GLX_EXT_visual_rating, GLX_SGI_make_current_read, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SUN_get_transparent_index, GLX_ARB_create_context
client glx vendor string: VirtualGL
client glx version string: 1.4
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_visual_info,
GLX_EXT_visual_rating, GLX_SGI_make_current_read, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SUN_get_transparent_index, GLX_ARB_create_context
GLX extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_visual_info,
GLX_EXT_visual_rating, GLX_SGI_make_current_read, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SUN_get_transparent_index, GLX_ARB_create_context
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce 610M/PCI/SSE2
OpenGL version string: 4.2.0 NVIDIA 290.10
OpenGL extensions:
GL_ARB_base_instance, GL_ARB_blend_func_extended,
GL_ARB_color_buffer_float, GL_ARB_compatibility,
GL_ARB_compressed_texture_pixel_storage, GL_ARB_conservative_depth,
GL_ARB_copy_buffer, GL_ARB_depth_buffer_float, GL_ARB_depth_clamp,
GL_ARB_depth_texture, GL_ARB_draw_buffers, GL_ARB_draw_buffers_blend,
GL_ARB_draw_indirect, GL_ARB_draw_elements_base_vertex,
GL_ARB_draw_instanced, GL_ARB_ES2_compatibility,
GL_ARB_explicit_attrib_location, GL_ARB_fragment_coord_conventions,
GL_ARB_fragment_program, GL_ARB_fragment_program_shadow,
GL_ARB_fragment_shader, GL_ARB_framebuffer_object,
GL_ARB_framebuffer_sRGB, GL_ARB_geometry_shader4,
GL_ARB_get_program_binary, GL_ARB_gpu_shader5, GL_ARB_gpu_shader_fp64,
GL_ARB_half_float_pixel, GL_ARB_half_float_vertex, GL_ARB_imaging,
GL_ARB_instanced_arrays, GL_ARB_internalformat_query,
GL_ARB_map_buffer_alignment, GL_ARB_map_buffer_range, GL_ARB_multisample,
GL_ARB_multitexture, GL_ARB_occlusion_query, GL_ARB_occlusion_query2,
GL_ARB_pixel_buffer_object, GL_ARB_point_parameters, GL_ARB_point_sprite,
GL_ARB_provoking_vertex, GL_ARB_robustness, GL_ARB_sample_shading,
GL_ARB_sampler_objects, GL_ARB_seamless_cube_map,
GL_ARB_separate_shader_objects, GL_ARB_shader_atomic_counters,
GL_ARB_shader_bit_encoding, GL_ARB_shader_image_load_store,
GL_ARB_shader_objects, GL_ARB_shader_precision, GL_ARB_shader_subroutine,
GL_ARB_shading_language_100, GL_ARB_shading_language_420pack,
GL_ARB_shading_language_include, GL_ARB_shading_language_packing,
GL_ARB_shadow, GL_ARB_sync, GL_ARB_tessellation_shader,
GL_ARB_texture_border_clamp, GL_ARB_texture_buffer_object,
GL_ARB_texture_buffer_object_rgb32, GL_ARB_texture_compression,
GL_ARB_texture_compression_bptc, GL_ARB_texture_compression_rgtc,
GL_ARB_texture_cube_map, GL_ARB_texture_cube_map_array,
GL_ARB_texture_env_add, GL_ARB_texture_env_combine,
GL_ARB_texture_env_crossbar, GL_ARB_texture_env_dot3,
GL_ARB_texture_float, GL_ARB_texture_gather,
GL_ARB_texture_mirrored_repeat, GL_ARB_texture_multisample,
GL_ARB_texture_non_power_of_two, GL_ARB_texture_query_lod,
GL_ARB_texture_rectangle, GL_ARB_texture_rg, GL_ARB_texture_rgb10_a2ui,
GL_ARB_texture_storage, GL_ARB_texture_swizzle, GL_ARB_timer_query,
GL_ARB_transform_feedback2, GL_ARB_transform_feedback3,
GL_ARB_transform_feedback_instanced, GL_ARB_transpose_matrix,
GL_ARB_uniform_buffer_object, GL_ARB_vertex_array_bgra,
GL_ARB_vertex_array_object, GL_ARB_vertex_attrib_64bit,
GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, GL_ARB_vertex_shader,
GL_ARB_vertex_type_2_10_10_10_rev, GL_ARB_viewport_array,
GL_ARB_window_pos, GL_ATI_draw_buffers, GL_ATI_texture_float,
GL_ATI_texture_mirror_once, GL_S3_s3tc, GL_EXT_texture_env_add,
GL_EXT_abgr, GL_EXT_bgra, GL_EXT_bindable_uniform, GL_EXT_blend_color,
GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate,
GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_compiled_vertex_array,
GL_EXT_Cg_shader, GL_EXT_depth_bounds_test, GL_EXT_direct_state_access,
GL_EXT_draw_buffers2, GL_EXT_draw_instanced, GL_EXT_draw_range_elements,
GL_EXT_fog_coord, GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample,
GL_EXTX_framebuffer_mixed_formats, GL_EXT_framebuffer_object,
GL_EXT_framebuffer_sRGB, GL_EXT_geometry_shader4,
GL_EXT_gpu_program_parameters, GL_EXT_gpu_shader4,
GL_EXT_multi_draw_arrays, GL_EXT_packed_depth_stencil,
GL_EXT_packed_float, GL_EXT_packed_pixels, GL_EXT_pixel_buffer_object,
GL_EXT_point_parameters, GL_EXT_provoking_vertex, GL_EXT_rescale_normal,
GL_EXT_secondary_color, GL_EXT_separate_shader_objects,
GL_EXT_separate_specular_color, GL_EXT_shader_image_load_store,
GL_EXT_shadow_funcs, GL_EXT_stencil_two_side, GL_EXT_stencil_wrap,
GL_EXT_texture3D, GL_EXT_texture_array, GL_EXT_texture_buffer_object,
GL_EXT_texture_compression_dxt1, GL_EXT_texture_compression_latc,
GL_EXT_texture_compression_rgtc, GL_EXT_texture_compression_s3tc,
GL_EXT_texture_cube_map, GL_EXT_texture_edge_clamp,
GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3,
GL_EXT_texture_filter_anisotropic, GL_EXT_texture_format_BGRA8888,
GL_EXT_texture_integer, GL_EXT_texture_lod, GL_EXT_texture_lod_bias,
GL_EXT_texture_mirror_clamp, GL_EXT_texture_object,
GL_EXT_texture_shared_exponent, GL_EXT_texture_sRGB,
GL_EXT_texture_sRGB_decode, GL_EXT_texture_storage,
GL_EXT_texture_swizzle, GL_EXT_texture_type_2_10_10_10_REV,
GL_EXT_timer_query, GL_EXT_transform_feedback2, GL_EXT_vertex_array,
GL_EXT_vertex_array_bgra, GL_EXT_vertex_attrib_64bit,
GL_EXT_x11_sync_object, GL_EXT_import_sync_object, GL_IBM_rasterpos_clip,
GL_IBM_texture_mirrored_repeat, GL_KTX_buffer_region, GL_NV_alpha_test,
GL_NV_blend_minmax, GL_NV_blend_square, GL_NV_complex_primitives,
GL_NV_conditional_render, GL_NV_copy_depth_to_color, GL_NV_copy_image,
GL_NV_depth_buffer_float, GL_NV_depth_clamp, GL_NV_explicit_multisample,
GL_NV_fbo_color_attachments, GL_NV_fence, GL_NV_float_buffer,
GL_NV_fog_distance, GL_NV_fragdepth, GL_NV_fragment_program,
GL_NV_fragment_program_option, GL_NV_fragment_program2,
GL_NV_framebuffer_multisample_coverage, GL_NV_geometry_shader4,
GL_NV_gpu_program4, GL_NV_gpu_program4_1, GL_NV_gpu_program5,
GL_NV_gpu_program_fp64, GL_NV_gpu_shader5, GL_NV_half_float,
GL_NV_light_max_exponent, GL_NV_multisample_coverage,
GL_NV_multisample_filter_hint, GL_NV_occlusion_query,
GL_NV_packed_depth_stencil, GL_NV_parameter_buffer_object,
GL_NV_parameter_buffer_object2, GL_NV_path_rendering,
GL_NV_pixel_data_range, GL_NV_point_sprite, GL_NV_primitive_restart,
GL_NV_register_combiners, GL_NV_register_combiners2,
GL_NV_shader_atomic_counters, GL_NV_shader_buffer_load,
GL_NV_texgen_reflection, GL_NV_texture_barrier,
GL_NV_texture_compression_vtc, GL_NV_texture_env_combine4,
GL_NV_texture_expand_normal, GL_NV_texture_lod_clamp,
GL_NV_texture_multisample, GL_NV_texture_rectangle, GL_NV_texture_shader,
GL_NV_texture_shader2, GL_NV_texture_shader3, GL_NV_transform_feedback,
GL_NV_transform_feedback2, GL_NV_vdpau_interop, GL_NV_vertex_array_range,
GL_NV_vertex_array_range2, GL_NV_vertex_attrib_integer_64bit,
GL_NV_vertex_buffer_unified_memory, GL_NV_vertex_program,
GL_NV_vertex_program1_1, GL_NV_vertex_program2,
GL_NV_vertex_program2_option, GL_NV_vertex_program3,
GL_NVX_conditional_render, GL_NVX_gpu_memory_info, GL_OES_depth24,
GL_OES_depth32, GL_OES_depth_texture, GL_OES_element_index_uint,
GL_OES_fbo_render_mipmap, GL_OES_get_program_binary, GL_OES_mapbuffer,
GL_OES_packed_depth_stencil, GL_OES_rgb8_rgba8,
GL_OES_standard_derivatives, GL_OES_texture_3D, GL_OES_texture_float,
GL_OES_texture_float_linear, GL_OES_texture_half_float,
GL_OES_texture_half_float_linear, GL_OES_texture_npot,
GL_OES_vertex_array_object, GL_OES_vertex_half_float,
GL_SGIS_generate_mipmap, GL_SGIS_texture_lod, GL_SGIX_depth_texture,
GL_SGIX_shadow, GL_SUN_slice_accum
glu version: 1.3
glu extensions:
GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess

visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav
id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat
----------------------------------------------------------------------
0x21 24 tc 0 32 0 r . . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x22 24 dc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x8e 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x8f 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x90 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x91 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x92 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x93 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x94 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x95 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x96 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x97 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x98 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x99 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x9a 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x9b 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x9c 24 dc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x9d 24 dc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x9e 24 dc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x9f 24 dc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0xa0 24 dc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0xa1 24 dc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0xa2 24 dc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0xa3 24 dc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0xa4 24 dc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0xa5 24 dc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0xa6 24 dc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0xa7 24 dc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0xa8 24 dc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0xa9 24 dc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0xaa 24 dc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x5d 32 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None

目前 bumblebee 的發展似乎尚未能夠動態切換 intel 和 nvidia 顯示卡
http://www.omgubuntu.co.uk/2011/05/bumbleebee-brings-nvidia-optimus-gpu-switching-to-linux-users/
https://wiki.archlinux.org/index.php/Bumblebee
所以當您的應用程式要用到 nvidia 顯示卡時,
您要用命令行啟動
$ optirun 您的_應用程式

或者您直接修改固定要用的 應用程式.desktop 檔案來啟動

因為大部份的時候都用內建的 intel 顯示卡
所以在不用的時候要將 nvidia 顯示卡關閉以減少耗電
請參考:
https://github.com/Bumblebee-Project/Bumblebee/wiki/ACPI-Removed
http://hybrid-graphics-linux.tuxfamily.org/index.php?title=ACPI_calls

首先,我們需要安裝 acpi_call 模組
請到 software.opensuse.org 搜尋 acpi_call-kmp
依照您的核心類型選擇所需的套件
$ uname -r
3.1.0-1.2-desktop

所以我要選擇 acpi_call-kmp-desktop 套件
我使用了 home:Ximi1970:bumblebee-unstable 套件庫中的
# zypper ar obs://home:Ximi1970:bumblebee-unstable/openSUSE_12.1 acpi_call
# zypper in acpi_call-kmp-desktop

載入 acpi_call 模組
# modprobe acpi_call

接著根據 http://hybrid-graphics-linux.tuxfamily.org/index.php?title=ACPI_calls#How_to_add_your_model.27s_information
測試您的顯示卡所支援的呼叫方式
1. 顯示您的機型
# dmidecode -s system-product-name && dmidecode -s system-version
Aspire 4752
V2.13

2. 顯示您的顯示卡資訊
# lspci -vnnn | perl -lne 'print if /^\d+\:.+(\[\S+\:\S+\])/' | grep VGA
00:02.0 VGA compatible controller [0300]: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0126] (rev 09) (prog-if 00 [VGA controller])
01:00.0 VGA compatible controller [0300]: nVidia Corporation Device [10de:0dea] (rev ff) (prog-if ff)

3. 下載測試 script 並進行測試
因為我們已經先安裝了並載入了 acpi_call 模組,所以不必自己編譯
直接測試即可
$ git clone https://github.com/mkottman/acpi_call.git
Cloning into acpi_call...
remote: Counting objects: 200, done.
remote: Compressing objects: 100% (132/132), done.
remote: Total 200 (delta 109), reused 148 (delta 66)
Receiving objects: 100% (200/200), 32.30 KiB, done.
Resolving deltas: 100% (109/109), done.
$ sh acpi_call/test_off.sh
Trying \_SB.PCI0.P0P1.VGA._OFF: failed
Trying \_SB.PCI0.P0P2.VGA._OFF: failed
Trying \_SB_.PCI0.OVGA.ATPX: failed
Trying \_SB_.PCI0.OVGA.XTPX: failed
Trying \_SB.PCI0.P0P3.PEGP._OFF: failed
Trying \_SB.PCI0.P0P2.PEGP._OFF: failed
Trying \_SB.PCI0.P0P1.PEGP._OFF: failed
Trying \_SB.PCI0.MXR0.MXM0._OFF: failed
Trying \_SB.PCI0.PEG1.GFX0._OFF: failed
Trying \_SB.PCI0.PEG0.GFX0.DOFF: failed
Trying \_SB.PCI0.PEG1.GFX0.DOFF: failed
Trying \_SB.PCI0.PEG0.PEGP._OFF: works!

這表示這個顯示卡可以用 \_SB.PCI0.PEG0.PEGP._OFF 來關閉

接下來要編輯
/etc/bumblebee/cardon
內容為
\_SB.PCI0.PEG0.PEGP._ON

/etc/bumblebee/cardoff
內容為就是剛才的測試結果
\_SB.PCI0.PEG0.PEGP._OFF


最後編輯 /etc/bumblebee/bumblebee.conf
修改
STOP_SERVICE_ON_EXIT=Y
ENABLE_POWER_MANAGEMENT=Y
FALLBACK_START=Y

存檔之後,重新開機,大功告成
您可以察看 /var/log/bumblebee.log
您會看見 nvidia 顯示卡在啟動時被停用的訊息
但是只要您用 optirun 去呼叫
就可以用較強的 nvidia 顯示卡功能
[     26.92] Bumblebee log started at Mon, 02 Jan 2012 22:13:43 +0800
[ 26.93] Creating fifo /var/run/bumblebee.fifo for communication...
[ 26.93] Making FIFO writable for members of group bumblebee
[ 26.95] Unloading driver 'nvidia' on start...
[ 27.01] rmmod /lib/modules/3.1.0-1.2-desktop/updates/nvidia.ko
[ 27.02] Disabling graphics card on start...
[ 27.46] insmod /lib/modules/3.1.0-1.2-desktop/updates/acpi_call.ko
[ 27.47] Waiting for orders

您也可以看一下 /var/log/Xorg.0.log
這是 intel 顯示卡載入驅動的紀錄
還有 /var/log/Xorg.8.log
這是 nvidia 顯示卡用 VirtualGL 在虛擬的 X 載入的紀錄

這台電腦的 Fn 快速鍵大多可以正常運作(多媒體鍵就沒測試了)
Fn+F3 循環切換無線網路與藍牙開關正常
Fn+F4 休眠正常
Fn+F5 看起來像是切換外接螢幕(沒得測)
Fn+F6 關閉螢幕正常
Fn+F7 觸控板開關正常
Fn+F8 音量開關正常
Fn+F12 Scr LK 沒測試
Fn+up-arrow 音量調大正常
Fn+down-arrow 音量調小正常

Fn+F11 數字鍵的部份因為 systemd 的影響而無法用
要加上 init=/sbin/init 核心參數才能正常運作
請小心儘量不要用 release note 中的方法...
參考 http://en.opensuse.org/openSUSE:Managing_Systemd

Fn+right-arrow 螢幕調亮
Fn+left-arrow 螢幕調暗
則需要加上 acpi_backlight=vendor acpi_osi=Linux 的核心參數才能調整


這台電腦的其他資訊:
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 003: ID 04fc:2801 Sunplus Technology Co., Ltd
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 062a:4101 Creative Labs
Bus 002 Device 003: ID 0489:e03c Foxconn / Hon Hai

其中 Foxconn/HonHai 的裝置是藍牙
目前似乎沒辦法使用
所以用快速鍵把藍牙關起來了

不管怎樣,貼個貼紙佔領起來再說吧!

Have a lot of fun !

2009年5月22日 星期五

變更開機畫面背景圖

參考資料:
http://susewiki.org/index.php?title=Changing_the_GRUB_background
http://en.opensuse.org/Custom_splash_screen
我只想要換個背景圖...

1. grub 背景圖
基本原理就是用 cpio 解開 message,然後將 bcck.jpg 換成您要的
準備:一張 800x600 圖片,取名 back.jpg,放在例如:~/Documents/
(注意圖檔不要太大)
步驟:
$ mkdir ~/cpio
$ mkdir ~/cpio/work
(建立工作目錄)
$ cd ~/cpio/work/
$ cp /boot/message .
(將 message 複製到此)
$ cpio -idv < message
(解開 message)
$ mv message ../message-old
(將 message 存在上層備份)
$ cp ~/Documents/back.jpg .
(將您預備的圖片複製到此)
$ ls | cpio -ov > ../message
(重新壓縮 message,放到上一層)
$ cd ..
$ su
密碼:
# cp message /boot/message

(將新生成的 message 放回原位,完成)
寄件者 openSUSE 11.1

2. bootsplash 背景圖
準備:2 張適合您的解析度的背景圖
若不知道解析度大小可用下面指令先看一下
# mkinitrd
....
Bootsplash: openSUSE (1024x768)
...

所以這台機器使用 openSUSE 主題,解析度為 1024x768
(這可能和您進入 X 後所用的解析度不同)
那您的圖片就要取名為
silent-1024x768.jpg (這就是不顯示資訊詳細資訊時的圖片)
bootsplash-1024x768.jpg (開機時按 Esc 會顯示的 console 背景)

bootspalsh 的主題都放在 /etc/bootsplash/themes/ 底下
預設的主題則是在 /etc/sysconfig/bootsplash 檔案中的 THEME 變數決定(11.1)
用下面指令可以看見您現在使用的主題
$ cat /etc/sysconfig/bootsplash | grep THEME
THEME="openSUSE"

我們就是要修改 openSUSE 主題
將您準備好的兩個圖檔複製到 /etc/bootsplash/themes/openSUSE/images/
# mkinitrd
Kernel image: /boot/vmlinuz-2.6.27.21-0.1-default
Initrd image: /boot/initrd-2.6.27.21-0.1-default
Root device: /dev/disk/by-id/ata-VBOX_HARDDISK_VBf9be9960-6c558729-part2 (/dev/sda2) (mounted on / as ext3)
Resume device: /dev/disk/by-id/ata-VBOX_HARDDISK_VBf9be9960-6c558729-part1 (/dev/sda1)
Kernel Modules: hwmon thermal_sys processor thermal fan jbd mbcache ext3 dock scsi_mod libata ata_piix edd crc-t10dif sd_mod usbcore ohci-hcd uhci-hcd ehci-hcd ff-memless hid usbhid
Features: block usb resume.userspace resume.kernel
Bootsplash: openSUSE (1024x768)
25589 blocks

重新開機看您的成果
寄件者 openSUSE 11.1

寄件者 openSUSE 11.1

3. kdm4 背景圖
在這裡也只改 SUSE 佈景的背景圖而已
這個佈景主題在某些顯示卡可能會造成瞬間螢幕錯亂
請參考:
http://forums.opensuse.org/hardware/414393-intel-945g-temporary-scrambled-screen-starting-kde.html
http://forums.opensuse.org/hardware/64-bit/412685-nvidia-scrambled-kdm-background-login-splash.html
在這裡會順便作修改
(似乎在更新過後已經不再出現這個問題,您可以先不修改)
您需要準備一張 Background.jpg
大小和您的 /usr/share/kde4/apps/kdm/themes/SUSE/Background.jpg 相同
覆蓋原有的檔案即可
要消除登入瞬間螢幕錯亂,請修改(似乎在更新過後已經不再出現這個問題,您可以先不修改)
/usr/share/kde4/apps/kdm/themes/SUSE/suse.xml

<item type="pixmap" id="background">

改成
<item type="pixmap" id="background" background="true">

完成
寄件者 openSUSE 11.1


4. ksplash 背景圖
openSUSE 11.1 預設使用 ksplashx-suse 的佈景主題
準備:background.png 的圖片
大小和 /usr/share/kde4/apps/ksplash/Themes/ksplashx-suse/1600x1200/background.png 相同
用您準備的背景取代
接著修改 /usr/share/kde4/apps/ksplash/Themes/ksplashx-suse/1600x1200/description.txt

SCALEY ON
IMAGE_REL CC 0 0 CC stripe.png
SCALE OFF

前面加上 # 或將此三行刪除
這是中間那個灰色的橫條
接著重新登入,就會看見您的新佈景了
寄件者 openSUSE 11.1