2018年5月12日 星期六

Docker 安裝流程

Add default user to sudo group :

su
apt -y install sudo
usermod -a -G sudo "username"
logout
id


Docker Install :

sudo apt-get install -y \
     apt-transport-https \
     ca-certificates \
     curl \
     gnupg2 \
     software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
     $(lsb_release -cs) \
stable"
sudo apt update -y
sudo apt install -y docker-ce
sudo usermod -a -G docker "username"

2018年4月30日 星期一

Linux 網路卡問題排錯 - IP

在 Linux/Unix 底下有幾個關於 IP 配置指令 :

ifconfig - 一般用於配置 IP , Netmask
# ifconfig eth0 192.168.1.1/24
# ifconfig eth0
eth0: flags=4163  mtu 1500
        inet 192.168.1.1  netmask 255.255.255.0  broadcast 192.168.1.255
        ether 00:50:b1:03:a1:00  txqueuelen 1000  (Ethernet)
        RX packets 321985  bytes 415032409 (395.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 185822  bytes 19749935 (18.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
route - 調整路由
# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.254   0.0.0.0         UG    100    0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0
ip - 跟 ip 有關係的都可以透過此指令
# ip route show
default via 192.168.1.1 dev eth0  proto static  metric 100
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.1  metric 100
# ip neigh show
192.168.1.254 dev eth0 lladdr 00:50:b1:03:a1:01 REACHABLE
# ip link show
1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:50:b1:03:a1:00 brd ff:ff:ff:ff:ff:ff
# ip rule show
0: from all lookup local
32766: from all lookup main
32767: from all lookup default

Linux 網路卡問題排錯 - 實體層

ethtool - 調整傳輸設定(定速, 全雙工/半雙工, 光功率診斷/設定, 無線網路強度診斷...)
# ethtool enp4s0f2
Settings for eth0:
 Supported ports: [ TP MII ]
 Supported link modes:   10baseT/Half 10baseT/Full
                         100baseT/Half 100baseT/Full
                         1000baseT/Half 1000baseT/Full
 Supported pause frame use: No
 Supports auto-negotiation: Yes
 Advertised link modes:  10baseT/Half 10baseT/Full
                         100baseT/Half 100baseT/Full
                         1000baseT/Half 1000baseT/Full
 Advertised pause frame use: Symmetric Receive-only
 Advertised auto-negotiation: Yes
 Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                      100baseT/Half 100baseT/Full
 Link partner advertised pause frame use: Symmetric
 Link partner advertised auto-negotiation: Yes
 Speed: 100Mb/s
 Duplex: Full
 Port: MII
 PHYAD: 0
 Transceiver: internal
 Auto-negotiation: on
 Supports Wake-on: pumbg
 Wake-on: g
 Current message level: 0x00000033 (51)
          drv probe ifdown ifup
 Link detected: yes

mii-tool - 調整傳輸設定(定速, 更改 MAC, 更改允許速度)

# mii-tool -v enp4s0f2
enp4s0f2: negotiated 1000baseT-HD flow-control, link ok
  product info: vendor 00:07:32, model 17 rev 5
  basic mode:   autonegotiation enabled
  basic status: autonegotiation complete, link ok
  capabilities: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  advertising:  1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
  link partner: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD

2016年12月16日 星期五

2008 to 2016 網管系統的演進

大學教科書 Computer Networking : A Top-Down Approach , 這本已經出到第六版了 ; 有興趣的可以 Google "computer networking a top-down approach" 應該可以撿到 PDF .

圍繞著幾個主題 :
1. 自動路徑切換, 通訊協定, 路由變更, 硬體電路備援這三大項, 在不同層面增加系統的可用度(提高服務品質與減低額外費用)
2. 主機系統監測, 可用性, 系統承受容量, 應用程式狀態變動, 即時同步的分析, 讓人可以透過系統從新分配工作.
3. 網路流量轉移, 對於 WAN 頻寬的合併, 自動流量重新分配, 頻寬管控和粒度分析, 而後針對不同行為給予獎勵與限制.
4. 資訊安全的細膩度, 人員日常行為分析和異常判讀, 不明流量的監控與反制, 資料管制與外洩控管.

大致上是如此跟大家報告一下.

2016年8月19日 星期五

Linux Ethernet Bonding 配置流程 - 前言2 , 配置極限

配置極限的原因有以下幾個 :

1. Hash : 會導致流量分配不均
例如傳統 EtherChannel 因為是透過 MAC 進行流量分配, 因此會有單數 MAC 分配到 A 網卡 , 雙數 MAC 分配到 B 網卡的情形 .
解決方法 : 將 Layer3, Layer4 和其他(VLAN ID)的相關的變數納入或是改用輪替模式.

2. 介面速度 : 線路品質, 網卡效能與支援
請參考 Physical Layer – Transmission Media CS442.
物理層依靠的是線路品質, 例如衰減跟干擾降低, 干擾因素愈少重傳的機會就愈少.
設備端收發晶片的敏感度和糾錯率愈高, 愈早能把東西傳出去.

3. 交換機與路由器的支援, 鏈路的整體速度 : 延遲時間
設備會將封包儲存然後轉傳 , 中間經過的時間長短會影響到效率 ; 等級愈高設備交換時間愈短 , 能忍受的封包數目愈高 .

2016年8月5日 星期五

新版 NVIDIA Optimus 啟用方法 (Intel + NVIDIA)

在傳統的環境底下, 僅會有單一獨立顯卡, 所以我們僅需要執行以下指令就會進行安裝
# apt-get install nvidia-driver
安裝之後因為設備特性的不同, 有些會同時有多張不同廠牌顯卡, 如 Intel + NVIDIA .
3D 加速的支援也不同.

所以我們還要安裝 NVIDIA Optimus support 的軟體
# apt-get install bumblebee bumblebee-nvidia
再把使用者加入 bumblebee 的群組
# gpasswd -a <使用者名稱> bumblebee 
再執行以下指令切換至 NVIDIA , 其中 vblank_mode=0 是關閉 XWindow 的垂直同步 ,
可以改善執行效能 , 可以避免遊戲反應遲鈍問題.
vblank_mode=0 optirun bash
啟用前

$ glxinfo
name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile,
    GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float,
    GLX_ARB_framebuffer_sRGB, GLX_ARB_multisample,
    GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile,
    GLX_EXT_fbconfig_packed_float, GLX_EXT_framebuffer_sRGB,
    GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info,
    GLX_EXT_visual_rating, GLX_INTEL_swap_event, GLX_MESA_copy_sub_buffer,
    GLX_OML_swap_method, GLX_SGIS_multisample, GLX_SGIX_fbconfig,
    GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group, GLX_SGI_swap_control
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile,
    GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float,
    GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, GLX_ARB_multisample,
    GLX_EXT_buffer_age, GLX_EXT_create_context_es2_profile,
    GLX_EXT_create_context_es_profile, GLX_EXT_fbconfig_packed_float,
    GLX_EXT_framebuffer_sRGB, GLX_EXT_import_context,
    GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info, GLX_EXT_visual_rating,
    GLX_INTEL_swap_event, GLX_MESA_copy_sub_buffer,
    GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer,
    GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
    GLX_SGIX_visual_select_group, GLX_SGI_make_current_read,
    GLX_SGI_swap_control, GLX_SGI_video_sync
GLX version: 1.4
GLX extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile,
    GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float,
    GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, GLX_ARB_multisample,
    GLX_EXT_buffer_age, GLX_EXT_create_context_es2_profile,
    GLX_EXT_create_context_es_profile, GLX_EXT_fbconfig_packed_float,
    GLX_EXT_framebuffer_sRGB, GLX_EXT_import_context,
    GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info, GLX_EXT_visual_rating,
    GLX_INTEL_swap_event, GLX_MESA_copy_sub_buffer,
    GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer,
    GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
    GLX_SGIX_visual_select_group, GLX_SGI_make_current_read,
    GLX_SGI_swap_control, GLX_SGI_video_sync
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Intel Open Source Technology Center (0x8086)
    Device: Mesa DRI Intel(R) Ivybridge Mobile  (0x166)
    Version: 11.2.2
    Accelerated: yes
    Video memory: 1536MB
    Unified memory: yes
    Preferred profile: core (0x1)
    Max core profile version: 3.3
    Max compat profile version: 3.0
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.0
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile
OpenGL core profile version string: 3.3 (Core Profile) Mesa 11.2.2
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
    GL_3DFX_texture_compression_FXT1, GL_AMD_conservative_depth,
    GL_AMD_draw_buffers_blend, GL_AMD_performance_monitor,
    GL_AMD_seamless_cubemap_per_texture, GL_AMD_shader_trinary_minmax,
    GL_AMD_vertex_shader_layer, GL_AMD_vertex_shader_viewport_index,
    GL_ANGLE_texture_compression_dxt3, GL_ANGLE_texture_compression_dxt5,
    GL_APPLE_object_purgeable, GL_ARB_ES2_compatibility,
    GL_ARB_ES3_compatibility, GL_ARB_arrays_of_arrays, GL_ARB_base_instance,
    GL_ARB_blend_func_extended, GL_ARB_buffer_storage,
    GL_ARB_clear_buffer_object, GL_ARB_clear_texture, GL_ARB_clip_control,
    GL_ARB_compressed_texture_pixel_storage, GL_ARB_compute_shader,
    GL_ARB_conditional_render_inverted, GL_ARB_conservative_depth,
    GL_ARB_copy_buffer, GL_ARB_copy_image, GL_ARB_debug_output,
    GL_ARB_depth_buffer_float, GL_ARB_depth_clamp, GL_ARB_derivative_control,
    GL_ARB_direct_state_access, GL_ARB_draw_buffers,
    GL_ARB_draw_buffers_blend, GL_ARB_draw_elements_base_vertex,
    GL_ARB_draw_indirect, GL_ARB_draw_instanced,
    GL_ARB_explicit_attrib_location, GL_ARB_explicit_uniform_location,
    GL_ARB_fragment_coord_conventions, GL_ARB_fragment_layer_viewport,
    GL_ARB_fragment_shader, GL_ARB_framebuffer_no_attachments,
    GL_ARB_framebuffer_object, GL_ARB_framebuffer_sRGB,
    GL_ARB_get_program_binary, GL_ARB_get_texture_sub_image,
    GL_ARB_gpu_shader5, GL_ARB_half_float_pixel, GL_ARB_half_float_vertex,
    GL_ARB_instanced_arrays, GL_ARB_internalformat_query,
    GL_ARB_invalidate_subdata, GL_ARB_map_buffer_alignment,
    GL_ARB_map_buffer_range, GL_ARB_multi_bind, GL_ARB_multi_draw_indirect,
    GL_ARB_occlusion_query2, GL_ARB_pipeline_statistics_query,
    GL_ARB_pixel_buffer_object, GL_ARB_point_sprite,
    GL_ARB_program_interface_query, GL_ARB_provoking_vertex,
    GL_ARB_robustness, GL_ARB_sample_shading, GL_ARB_sampler_objects,
    GL_ARB_seamless_cube_map, GL_ARB_seamless_cubemap_per_texture,
    GL_ARB_separate_shader_objects, GL_ARB_shader_atomic_counters,
    GL_ARB_shader_bit_encoding, GL_ARB_shader_clock,
    GL_ARB_shader_draw_parameters, GL_ARB_shader_image_load_store,
    GL_ARB_shader_image_size, GL_ARB_shader_objects,
    GL_ARB_shader_storage_buffer_object, GL_ARB_shader_subroutine,
    GL_ARB_shader_texture_image_samples, GL_ARB_shader_texture_lod,
    GL_ARB_shading_language_420pack, GL_ARB_shading_language_packing,
    GL_ARB_sync, GL_ARB_tessellation_shader, GL_ARB_texture_barrier,
    GL_ARB_texture_buffer_object, GL_ARB_texture_buffer_object_rgb32,
    GL_ARB_texture_buffer_range, GL_ARB_texture_compression_bptc,
    GL_ARB_texture_compression_rgtc, GL_ARB_texture_cube_map_array,
    GL_ARB_texture_float, GL_ARB_texture_gather,
    GL_ARB_texture_mirror_clamp_to_edge, GL_ARB_texture_multisample,
    GL_ARB_texture_non_power_of_two, GL_ARB_texture_query_levels,
    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_storage_multisample, GL_ARB_texture_swizzle,
    GL_ARB_texture_view, GL_ARB_timer_query, GL_ARB_transform_feedback2,
    GL_ARB_transform_feedback3, GL_ARB_transform_feedback_instanced,
    GL_ARB_uniform_buffer_object, GL_ARB_vertex_array_bgra,
    GL_ARB_vertex_array_object, GL_ARB_vertex_attrib_binding,
    GL_ARB_vertex_shader, GL_ARB_vertex_type_10f_11f_11f_rev,
    GL_ARB_vertex_type_2_10_10_10_rev, GL_ARB_viewport_array,
    GL_ATI_blend_equation_separate, GL_ATI_texture_float, GL_EXT_abgr,
    GL_EXT_blend_equation_separate, GL_EXT_draw_buffers2,
    GL_EXT_draw_instanced, GL_EXT_framebuffer_blit,
    GL_EXT_framebuffer_multisample, GL_EXT_framebuffer_multisample_blit_scaled,
    GL_EXT_framebuffer_sRGB, GL_EXT_packed_depth_stencil, GL_EXT_packed_float,
    GL_EXT_pixel_buffer_object, GL_EXT_polygon_offset_clamp,
    GL_EXT_provoking_vertex, GL_EXT_shader_integer_mix,
    GL_EXT_shader_samples_identical, GL_EXT_texture_array,
    GL_EXT_texture_compression_dxt1, GL_EXT_texture_compression_rgtc,
    GL_EXT_texture_compression_s3tc, GL_EXT_texture_filter_anisotropic,
    GL_EXT_texture_integer, GL_EXT_texture_sRGB, GL_EXT_texture_sRGB_decode,
    GL_EXT_texture_shared_exponent, GL_EXT_texture_snorm,
    GL_EXT_texture_swizzle, GL_EXT_timer_query, GL_EXT_transform_feedback,
    GL_EXT_vertex_array_bgra, GL_IBM_multimode_draw_arrays,
    GL_INTEL_performance_query, GL_KHR_context_flush_control, GL_KHR_debug,
    GL_MESA_pack_invert, GL_MESA_texture_signed_rgba,
    GL_NV_conditional_render, GL_NV_depth_clamp, GL_NV_packed_depth_stencil,
    GL_NV_texture_barrier, GL_OES_EGL_image, GL_OES_read_format, GL_S3_s3tc
OpenGL version string: 3.0 Mesa 11.2.2
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
    GL_3DFX_texture_compression_FXT1, GL_AMD_conservative_depth,
    GL_AMD_draw_buffers_blend, GL_AMD_performance_monitor,
    GL_AMD_seamless_cubemap_per_texture, GL_AMD_shader_trinary_minmax,
    GL_ANGLE_texture_compression_dxt3, GL_ANGLE_texture_compression_dxt5,
    GL_APPLE_object_purgeable, GL_APPLE_packed_pixels,
    GL_APPLE_vertex_array_object, GL_ARB_ES2_compatibility,
    GL_ARB_ES3_compatibility, GL_ARB_arrays_of_arrays,
    GL_ARB_blend_func_extended, GL_ARB_buffer_storage,
    GL_ARB_clear_buffer_object, GL_ARB_clear_texture, GL_ARB_clip_control,
    GL_ARB_color_buffer_float, GL_ARB_compressed_texture_pixel_storage,
    GL_ARB_conditional_render_inverted, GL_ARB_conservative_depth,
    GL_ARB_copy_buffer, GL_ARB_copy_image, GL_ARB_debug_output,
    GL_ARB_depth_buffer_float, GL_ARB_depth_clamp, GL_ARB_depth_texture,
    GL_ARB_derivative_control, GL_ARB_draw_buffers, GL_ARB_draw_buffers_blend,
    GL_ARB_draw_elements_base_vertex, GL_ARB_draw_instanced,
    GL_ARB_explicit_attrib_location, GL_ARB_explicit_uniform_location,
    GL_ARB_fragment_coord_conventions, GL_ARB_fragment_program,
    GL_ARB_fragment_program_shadow, GL_ARB_fragment_shader,
    GL_ARB_framebuffer_no_attachments, GL_ARB_framebuffer_object,
    GL_ARB_framebuffer_sRGB, GL_ARB_get_program_binary,
    GL_ARB_get_texture_sub_image, GL_ARB_half_float_pixel,
    GL_ARB_half_float_vertex, GL_ARB_instanced_arrays,
    GL_ARB_internalformat_query, GL_ARB_invalidate_subdata,
    GL_ARB_map_buffer_alignment, GL_ARB_map_buffer_range, GL_ARB_multi_bind,
    GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_occlusion_query,
    GL_ARB_occlusion_query2, GL_ARB_pipeline_statistics_query,
    GL_ARB_pixel_buffer_object, GL_ARB_point_parameters, GL_ARB_point_sprite,
    GL_ARB_program_interface_query, GL_ARB_provoking_vertex,
    GL_ARB_robustness, GL_ARB_sample_shading, GL_ARB_sampler_objects,
    GL_ARB_seamless_cube_map, GL_ARB_seamless_cubemap_per_texture,
    GL_ARB_separate_shader_objects, GL_ARB_shader_atomic_counters,
    GL_ARB_shader_bit_encoding, GL_ARB_shader_clock,
    GL_ARB_shader_draw_parameters, GL_ARB_shader_image_load_store,
    GL_ARB_shader_image_size, GL_ARB_shader_objects,
    GL_ARB_shader_storage_buffer_object, GL_ARB_shader_texture_image_samples,
    GL_ARB_shader_texture_lod, GL_ARB_shading_language_100,
    GL_ARB_shading_language_420pack, GL_ARB_shading_language_packing,
    GL_ARB_shadow, GL_ARB_sync, GL_ARB_texture_barrier,
    GL_ARB_texture_border_clamp, 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_mirror_clamp_to_edge, GL_ARB_texture_mirrored_repeat,
    GL_ARB_texture_multisample, GL_ARB_texture_non_power_of_two,
    GL_ARB_texture_query_levels, 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_storage_multisample,
    GL_ARB_texture_swizzle, GL_ARB_texture_view, 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_binding,
    GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, GL_ARB_vertex_shader,
    GL_ARB_vertex_type_10f_11f_11f_rev, GL_ARB_vertex_type_2_10_10_10_rev,
    GL_ARB_window_pos, GL_ATI_blend_equation_separate, GL_ATI_draw_buffers,
    GL_ATI_separate_stencil, GL_ATI_texture_env_combine3,
    GL_ATI_texture_float, GL_EXT_abgr, GL_EXT_bgra, 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_copy_texture, 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_EXT_framebuffer_multisample_blit_scaled,
    GL_EXT_framebuffer_object, GL_EXT_framebuffer_sRGB,
    GL_EXT_gpu_program_parameters, 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_polygon_offset, GL_EXT_polygon_offset_clamp,
    GL_EXT_provoking_vertex, GL_EXT_rescale_normal, GL_EXT_secondary_color,
    GL_EXT_separate_specular_color, GL_EXT_shader_integer_mix,
    GL_EXT_shader_samples_identical, GL_EXT_shadow_funcs,
    GL_EXT_stencil_two_side, GL_EXT_stencil_wrap, GL_EXT_subtexture,
    GL_EXT_texture, GL_EXT_texture3D, GL_EXT_texture_array,
    GL_EXT_texture_compression_dxt1, GL_EXT_texture_compression_rgtc,
    GL_EXT_texture_compression_s3tc, GL_EXT_texture_cube_map,
    GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add,
    GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3,
    GL_EXT_texture_filter_anisotropic, GL_EXT_texture_integer,
    GL_EXT_texture_lod_bias, GL_EXT_texture_object, GL_EXT_texture_rectangle,
    GL_EXT_texture_sRGB, GL_EXT_texture_sRGB_decode,
    GL_EXT_texture_shared_exponent, GL_EXT_texture_snorm,
    GL_EXT_texture_swizzle, GL_EXT_timer_query, GL_EXT_transform_feedback,
    GL_EXT_vertex_array, GL_EXT_vertex_array_bgra,
    GL_IBM_multimode_draw_arrays, GL_IBM_rasterpos_clip,
    GL_IBM_texture_mirrored_repeat, GL_INGR_blend_func_separate,
    GL_INTEL_performance_query, GL_KHR_context_flush_control, GL_KHR_debug,
    GL_MESA_pack_invert, GL_MESA_texture_signed_rgba, GL_MESA_window_pos,
    GL_NV_blend_square, GL_NV_conditional_render, GL_NV_depth_clamp,
    GL_NV_light_max_exponent, GL_NV_packed_depth_stencil,
    GL_NV_primitive_restart, GL_NV_texgen_reflection, GL_NV_texture_barrier,
    GL_NV_texture_env_combine4, GL_NV_texture_rectangle, GL_OES_EGL_image,
    GL_OES_read_format, GL_S3_s3tc, GL_SGIS_generate_mipmap,
    GL_SGIS_texture_border_clamp, GL_SGIS_texture_edge_clamp,
    GL_SGIS_texture_lod, GL_SUN_multi_draw_arrays
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 11.2.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:
    GL_ANGLE_texture_compression_dxt3, GL_ANGLE_texture_compression_dxt5,
    GL_APPLE_texture_max_level, GL_EXT_blend_func_extended,
    GL_EXT_blend_minmax, GL_EXT_color_buffer_float,
    GL_EXT_discard_framebuffer, GL_EXT_draw_buffers,
    GL_EXT_draw_elements_base_vertex, GL_EXT_map_buffer_range,
    GL_EXT_multi_draw_arrays, GL_EXT_read_format_bgra,
    GL_EXT_separate_shader_objects, GL_EXT_shader_integer_mix,
    GL_EXT_texture_compression_dxt1, GL_EXT_texture_filter_anisotropic,
    GL_EXT_texture_format_BGRA8888, GL_EXT_texture_rg,
    GL_EXT_texture_type_2_10_10_10_REV, GL_EXT_unpack_subimage,
    GL_INTEL_performance_query, GL_KHR_context_flush_control, GL_KHR_debug,
    GL_NV_draw_buffers, GL_NV_fbo_color_attachments, GL_NV_read_buffer,
    GL_NV_read_depth, GL_NV_read_depth_stencil, GL_NV_read_stencil,
    GL_OES_EGL_image, GL_OES_EGL_image_external, GL_OES_EGL_sync,
    GL_OES_compressed_ETC1_RGB8_texture, GL_OES_depth24, GL_OES_depth_texture,
    GL_OES_depth_texture_cube_map, GL_OES_draw_elements_base_vertex,
    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_stencil8,
    GL_OES_surfaceless_context, 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
40 GLX Visuals
    visual  x   bf lv rg d st  colorbuffer  sr ax dp st accumbuffer  ms  cav
  id dep cl sp  sz l  ci b ro  r  g  b  a F gb bf th cl  r  g  b  a ns b eat
----------------------------------------------------------------------------
...
64 GLXFBConfigs:
    visual  x   bf lv rg d st  colorbuffer  sr ax dp st accumbuffer  ms  cav
  id dep cl sp  sz l  ci b ro  r  g  b  a F gb bf th cl  r  g  b  a ns b eat
----------------------------------------------------------------------------
...

啟用後

$ glxinfo
name of display: :0.0
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
server glx extensions:
    GLX_ARB_context_flush_control, GLX_ARB_create_context,
    GLX_ARB_create_context_profile, GLX_ARB_create_context_robustness,
    GLX_ARB_fbconfig_float, GLX_ARB_multisample, GLX_EXT_buffer_age,
    GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile,
    GLX_EXT_framebuffer_sRGB, GLX_EXT_stereo_tree, GLX_EXT_swap_control,
    GLX_EXT_swap_control_tear, GLX_EXT_texture_from_pixmap,
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_NV_copy_image,
    GLX_NV_delay_before_swap, GLX_NV_float_buffer,
    GLX_NV_multisample_coverage, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
    GLX_SGI_swap_control, GLX_SGI_video_sync
client glx vendor string: primus
client glx version string: 1.4
client glx extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile,
    GLX_ARB_get_proc_address
GLX version: 1.4
GLX extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile,
    GLX_ARB_get_proc_address
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GT 720M/PCIe/SSE2
OpenGL core profile version string: 4.5.0 NVIDIA 352.79
OpenGL core profile shading language version string: 4.50 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
    GL_AMD_multi_draw_indirect, GL_ARB_ES2_compatibility,
    GL_ARB_ES3_1_compatibility, GL_ARB_ES3_compatibility,
    GL_ARB_arrays_of_arrays, GL_ARB_base_instance, GL_ARB_blend_func_extended,
    GL_ARB_buffer_storage, GL_ARB_clear_buffer_object, GL_ARB_clear_texture,
    GL_ARB_clip_control, GL_ARB_color_buffer_float,
    GL_ARB_compressed_texture_pixel_storage, GL_ARB_compute_shader,
    GL_ARB_compute_variable_group_size, GL_ARB_conditional_render_inverted,
    GL_ARB_conservative_depth, GL_ARB_copy_buffer, GL_ARB_copy_image,
    GL_ARB_cull_distance, GL_ARB_debug_output, GL_ARB_depth_buffer_float,
    GL_ARB_depth_clamp, GL_ARB_depth_texture, GL_ARB_derivative_control,
    GL_ARB_direct_state_access, GL_ARB_draw_buffers,
    GL_ARB_draw_buffers_blend, GL_ARB_draw_elements_base_vertex,
    GL_ARB_draw_indirect, GL_ARB_draw_instanced, GL_ARB_enhanced_layouts,
    GL_ARB_explicit_attrib_location, GL_ARB_explicit_uniform_location,
    GL_ARB_fragment_coord_conventions, GL_ARB_fragment_layer_viewport,
    GL_ARB_fragment_program, GL_ARB_fragment_program_shadow,
    GL_ARB_fragment_shader, GL_ARB_framebuffer_no_attachments,
    GL_ARB_framebuffer_object, GL_ARB_framebuffer_sRGB,
    GL_ARB_geometry_shader4, GL_ARB_get_program_binary,
    GL_ARB_get_texture_sub_image, GL_ARB_gpu_shader5, GL_ARB_gpu_shader_fp64,
    GL_ARB_half_float_pixel, GL_ARB_half_float_vertex, GL_ARB_imaging,
    GL_ARB_indirect_parameters, GL_ARB_instanced_arrays,
    GL_ARB_internalformat_query, GL_ARB_internalformat_query2,
    GL_ARB_invalidate_subdata, GL_ARB_map_buffer_alignment,
    GL_ARB_map_buffer_range, GL_ARB_multi_bind, GL_ARB_multi_draw_indirect,
    GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_occlusion_query,
    GL_ARB_occlusion_query2, GL_ARB_pipeline_statistics_query,
    GL_ARB_pixel_buffer_object, GL_ARB_point_parameters, GL_ARB_point_sprite,
    GL_ARB_program_interface_query, GL_ARB_provoking_vertex,
    GL_ARB_query_buffer_object, GL_ARB_robust_buffer_access_behavior,
    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_draw_parameters, GL_ARB_shader_group_vote,
    GL_ARB_shader_image_load_store, GL_ARB_shader_image_size,
    GL_ARB_shader_objects, GL_ARB_shader_precision,
    GL_ARB_shader_storage_buffer_object, GL_ARB_shader_subroutine,
    GL_ARB_shader_texture_image_samples, GL_ARB_shader_texture_lod,
    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_sparse_buffer, GL_ARB_sparse_texture,
    GL_ARB_stencil_texturing, GL_ARB_sync, GL_ARB_tessellation_shader,
    GL_ARB_texture_barrier, GL_ARB_texture_border_clamp,
    GL_ARB_texture_buffer_object, GL_ARB_texture_buffer_object_rgb32,
    GL_ARB_texture_buffer_range, 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_mirror_clamp_to_edge, GL_ARB_texture_mirrored_repeat,
    GL_ARB_texture_multisample, GL_ARB_texture_non_power_of_two,
    GL_ARB_texture_query_levels, GL_ARB_texture_query_lod,
    GL_ARB_texture_rectangle, GL_ARB_texture_rg, GL_ARB_texture_rgb10_a2ui,
    GL_ARB_texture_stencil8, GL_ARB_texture_storage,
    GL_ARB_texture_storage_multisample, GL_ARB_texture_swizzle,
    GL_ARB_texture_view, GL_ARB_timer_query, GL_ARB_transform_feedback2,
    GL_ARB_transform_feedback3, GL_ARB_transform_feedback_instanced,
    GL_ARB_transform_feedback_overflow_query, 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_attrib_binding, GL_ARB_vertex_buffer_object,
    GL_ARB_vertex_program, GL_ARB_vertex_shader,
    GL_ARB_vertex_type_10f_11f_11f_rev, 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_EXTX_framebuffer_mixed_formats, GL_EXT_Cg_shader, 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_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_EXT_framebuffer_multisample_blit_scaled, GL_EXT_framebuffer_object,
    GL_EXT_framebuffer_sRGB, GL_EXT_geometry_shader4,
    GL_EXT_gpu_program_parameters, GL_EXT_gpu_shader4,
    GL_EXT_import_sync_object, 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_polygon_offset_clamp, 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_shader_integer_mix,
    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_add, GL_EXT_texture_env_combine,
    GL_EXT_texture_env_dot3, GL_EXT_texture_filter_anisotropic,
    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_sRGB,
    GL_EXT_texture_sRGB_decode, GL_EXT_texture_shared_exponent,
    GL_EXT_texture_storage, GL_EXT_texture_swizzle, 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_IBM_rasterpos_clip,
    GL_IBM_texture_mirrored_repeat, GL_KHR_blend_equation_advanced,
    GL_KHR_context_flush_control, GL_KHR_debug,
    GL_KHR_robust_buffer_access_behavior, GL_KHR_robustness,
    GL_KTX_buffer_region, GL_NVX_conditional_render, GL_NVX_gpu_memory_info,
    GL_NV_ES1_1_compatibility, GL_NV_ES3_1_compatibility,
    GL_NV_bindless_multi_draw_indirect,
    GL_NV_bindless_multi_draw_indirect_count, GL_NV_blend_equation_advanced,
    GL_NV_blend_square, GL_NV_command_list, GL_NV_compute_program5,
    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_draw_texture,
    GL_NV_explicit_multisample, GL_NV_fence, GL_NV_float_buffer,
    GL_NV_fog_distance, GL_NV_fragment_program, GL_NV_fragment_program2,
    GL_NV_fragment_program_option, 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_program5_mem_extended,
    GL_NV_gpu_program_fp64, GL_NV_gpu_shader5, GL_NV_half_float,
    GL_NV_internalformat_sample_query, 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_atomic_float, GL_NV_shader_buffer_load,
    GL_NV_shader_storage_buffer_object, GL_NV_shader_thread_group,
    GL_NV_texgen_reflection, GL_NV_texture_barrier,
    GL_NV_texture_compression_vtc, GL_NV_texture_env_combine4,
    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_uniform_buffer_unified_memory,
    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_S3_s3tc,
    GL_SGIS_generate_mipmap, GL_SGIS_texture_lod, GL_SGIX_depth_texture,
    GL_SGIX_shadow, GL_SUN_slice_accum
OpenGL version string: 4.5.0 NVIDIA 352.79
OpenGL shading language version string: 4.50 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:
    GL_AMD_multi_draw_indirect, GL_ARB_ES2_compatibility,
    GL_ARB_ES3_1_compatibility, GL_ARB_ES3_compatibility,
    GL_ARB_arrays_of_arrays, GL_ARB_base_instance, GL_ARB_blend_func_extended,
    GL_ARB_buffer_storage, GL_ARB_clear_buffer_object, GL_ARB_clear_texture,
    GL_ARB_clip_control, GL_ARB_color_buffer_float, GL_ARB_compatibility,
    GL_ARB_compressed_texture_pixel_storage, GL_ARB_compute_shader,
    GL_ARB_compute_variable_group_size, GL_ARB_conditional_render_inverted,
    GL_ARB_conservative_depth, GL_ARB_copy_buffer, GL_ARB_copy_image,
    GL_ARB_cull_distance, GL_ARB_debug_output, GL_ARB_depth_buffer_float,
    GL_ARB_depth_clamp, GL_ARB_depth_texture, GL_ARB_derivative_control,
    GL_ARB_direct_state_access, GL_ARB_draw_buffers,
    GL_ARB_draw_buffers_blend, GL_ARB_draw_elements_base_vertex,
    GL_ARB_draw_indirect, GL_ARB_draw_instanced, GL_ARB_enhanced_layouts,
    GL_ARB_explicit_attrib_location, GL_ARB_explicit_uniform_location,
    GL_ARB_fragment_coord_conventions, GL_ARB_fragment_layer_viewport,
    GL_ARB_fragment_program, GL_ARB_fragment_program_shadow,
    GL_ARB_fragment_shader, GL_ARB_framebuffer_no_attachments,
    GL_ARB_framebuffer_object, GL_ARB_framebuffer_sRGB,
    GL_ARB_geometry_shader4, GL_ARB_get_program_binary,
    GL_ARB_get_texture_sub_image, GL_ARB_gpu_shader5, GL_ARB_gpu_shader_fp64,
    GL_ARB_half_float_pixel, GL_ARB_half_float_vertex, GL_ARB_imaging,
    GL_ARB_indirect_parameters, GL_ARB_instanced_arrays,
    GL_ARB_internalformat_query, GL_ARB_internalformat_query2,
    GL_ARB_invalidate_subdata, GL_ARB_map_buffer_alignment,
    GL_ARB_map_buffer_range, GL_ARB_multi_bind, GL_ARB_multi_draw_indirect,
    GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_occlusion_query,
    GL_ARB_occlusion_query2, GL_ARB_pipeline_statistics_query,
    GL_ARB_pixel_buffer_object, GL_ARB_point_parameters, GL_ARB_point_sprite,
    GL_ARB_program_interface_query, GL_ARB_provoking_vertex,
    GL_ARB_query_buffer_object, GL_ARB_robust_buffer_access_behavior,
    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_draw_parameters, GL_ARB_shader_group_vote,
    GL_ARB_shader_image_load_store, GL_ARB_shader_image_size,
    GL_ARB_shader_objects, GL_ARB_shader_precision,
    GL_ARB_shader_storage_buffer_object, GL_ARB_shader_subroutine,
    GL_ARB_shader_texture_image_samples, GL_ARB_shader_texture_lod,
    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_sparse_buffer, GL_ARB_sparse_texture,
    GL_ARB_stencil_texturing, GL_ARB_sync, GL_ARB_tessellation_shader,
    GL_ARB_texture_barrier, GL_ARB_texture_border_clamp,
    GL_ARB_texture_buffer_object, GL_ARB_texture_buffer_object_rgb32,
    GL_ARB_texture_buffer_range, 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_mirror_clamp_to_edge, GL_ARB_texture_mirrored_repeat,
    GL_ARB_texture_multisample, GL_ARB_texture_non_power_of_two,
    GL_ARB_texture_query_levels, GL_ARB_texture_query_lod,
    GL_ARB_texture_rectangle, GL_ARB_texture_rg, GL_ARB_texture_rgb10_a2ui,
    GL_ARB_texture_stencil8, GL_ARB_texture_storage,
    GL_ARB_texture_storage_multisample, GL_ARB_texture_swizzle,
    GL_ARB_texture_view, GL_ARB_timer_query, GL_ARB_transform_feedback2,
    GL_ARB_transform_feedback3, GL_ARB_transform_feedback_instanced,
    GL_ARB_transform_feedback_overflow_query, 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_attrib_binding, GL_ARB_vertex_buffer_object,
    GL_ARB_vertex_program, GL_ARB_vertex_shader,
    GL_ARB_vertex_type_10f_11f_11f_rev, 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_EXTX_framebuffer_mixed_formats, GL_EXT_Cg_shader, 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_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_EXT_framebuffer_multisample_blit_scaled, GL_EXT_framebuffer_object,
    GL_EXT_framebuffer_sRGB, GL_EXT_geometry_shader4,
    GL_EXT_gpu_program_parameters, GL_EXT_gpu_shader4,
    GL_EXT_import_sync_object, 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_polygon_offset_clamp, 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_shader_integer_mix,
    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_add, GL_EXT_texture_env_combine,
    GL_EXT_texture_env_dot3, GL_EXT_texture_filter_anisotropic,
    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_sRGB,
    GL_EXT_texture_sRGB_decode, GL_EXT_texture_shared_exponent,
    GL_EXT_texture_storage, GL_EXT_texture_swizzle, 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_IBM_rasterpos_clip,
    GL_IBM_texture_mirrored_repeat, GL_KHR_blend_equation_advanced,
    GL_KHR_context_flush_control, GL_KHR_debug,
    GL_KHR_robust_buffer_access_behavior, GL_KHR_robustness,
    GL_KTX_buffer_region, GL_NVX_conditional_render, GL_NVX_gpu_memory_info,
    GL_NV_ES1_1_compatibility, GL_NV_ES3_1_compatibility,
    GL_NV_bindless_multi_draw_indirect,
    GL_NV_bindless_multi_draw_indirect_count, GL_NV_blend_equation_advanced,
    GL_NV_blend_square, GL_NV_command_list, GL_NV_compute_program5,
    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_draw_texture,
    GL_NV_explicit_multisample, GL_NV_fence, GL_NV_float_buffer,
    GL_NV_fog_distance, GL_NV_fragment_program, GL_NV_fragment_program2,
    GL_NV_fragment_program_option, 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_program5_mem_extended,
    GL_NV_gpu_program_fp64, GL_NV_gpu_shader5, GL_NV_half_float,
    GL_NV_internalformat_sample_query, 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_atomic_float, GL_NV_shader_buffer_load,
    GL_NV_shader_storage_buffer_object, GL_NV_shader_thread_group,
    GL_NV_texgen_reflection, GL_NV_texture_barrier,
    GL_NV_texture_compression_vtc, GL_NV_texture_env_combine4,
    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_uniform_buffer_unified_memory,
    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_S3_s3tc,
    GL_SGIS_generate_mipmap, GL_SGIS_texture_lod, GL_SGIX_depth_texture,
    GL_SGIX_shadow, GL_SUN_slice_accum
40 GLX Visuals
    visual  x   bf lv rg d st  colorbuffer  sr ax dp st accumbuffer  ms  cav
  id dep cl sp  sz l  ci b ro  r  g  b  a F gb bf th cl  r  g  b  a ns b eat
----------------------------------------------------------------------------
...
311 GLXFBConfigs:
    visual  x   bf lv rg d st  colorbuffer  sr ax dp st accumbuffer  ms  cav
  id dep cl sp  sz l  ci b ro  r  g  b  a F gb bf th cl  r  g  b  a ns b eat
----------------------------------------------------------------------------
...

2016年8月4日 星期四

Linux Ethernet Bonding 配置流程 - 前言 , 模式與Hash

前言

何謂 Bonding , 簡單而言就是將兩張以上的網路介面捆綁一起使用 .
根據 Linux Ethernet Bonding Driver HOWTO 上的說明, 有以下幾種模式 :

  1. Active-Backup 或稱備援模式 (mode 1), 在此模式下僅有一條連結可以可以使用 , 當其中一條介面異常時 , 會將流量切換至另外一條送出 .
  2. balance-rr 或稱輪替模式 (mode 0), 此模式下每條線路都會送出 , 不過此模式不被大部分的交換機支援 , 多用於非網管型交換機跟 Hub , 部份設備可以使用 EtherChannel .
  3. balance-xor 或稱傳統鏈路聚合模式 (mode 2) , 此模式下會透過 MAC 的 Hash (Source XOR Destination) , 在交換機部份被稱為 EtherChannel (Cisco) , Link AGgregation (Juniper and others) , 不會偵測兩邊是否正常收發 .
  4. Broadcast (mode 3) , 此時會將流量同時從多的介面廣播出去 .
  5. 802.3ad , LACP , Dynamic LAG (mode 4) , 動態鏈路聚合模式 , 此模式下會透過 LACPDU 封包偵測 , 使得兩邊交握完成後才會開始傳輸 , 再透過 Hash 將流量導入不同介面 . 用此功能時需注意 , 介面的速率與多工模式需相同 , 上限最多為 8 個介面 .
  6. balance-tlb (mode 5) , 將對外流量透過不同的 MAC 和介面送出 , 而進來的介面宣告為其中一固定介面 , 用於保障資料送出 .
  7. balance-alb (mode 6) , 透過 MAC 與 ARP 的複寫將進出流量導至不同介面.
Hash (xmit_hash_policy) 的方法有以下幾種 :
  1. Layer2 : Source MAC XOR Destination MAC XOR Packet type ID slave number
  2. Layer2+3 : 做完 Layer2 Hash 之後再 XOR Source IP XOR Destination IP
  3. Layer3+4 : Source Port OR Destination Port , 再 XOR Source IP XOR Destination IP
  4. Encap2+3 & Encap3+4 : 類似之前兩種但是提供給有額外封裝使用.
早期 2.6.3 僅支援 Layer2 Hash , 但要到 3.2.2 以後版本才能提供 layer2+3 .
LACP 則建議要到 3.4 以後版本再使用, 在之前有 RX Drop 的 Bug .

2016年7月30日 星期六

Install Starcraft 2 , Lecacy of the void on Debian Linux

Requirement :
Enable 3D and ATI/nVidia Driver in XWindow

1. Check the WineHQ > Starcraft 2
https://appdb.winehq.org/objectManager.php?sClass=version&iId=20882

2. Install Wine and Winetricks
Debian/Ubuntu : apt-get install winetricks wine-development

3. Run Winetricks and Install Visual C++ Redistributable Package 2015
Debian/Ubuntu : winetricks vcrun2015

4. Bypass Bug
Debian/Ubuntu : winecfg-development

Select Windows XP Mode
Add api-ms-win-crt-runtime-l1-1-0
Add api-ms-win-crt-stdio-l1-1-0
Add ucrtbase
Add vcruntime140

5. Download Battle.net
https://www.battle.net/download/getInstallerForGame?os=win&locale=enUS&version=LIVE&gameProgram=BATTLENET_APP

6. Install Battle.net , 20160730
Debian/Ubuntu : wine-development Battle.net-Setup.exe

MD5:
b322e19e0de5b1f2b04fad1d59c0cdfc  Battle.net-Setup.exe
SHA-512
656642f959ebd9048c6369c8ede00dd90ce044c95ff04ad3197a13682d1d0720b20212cdff23c128448d15a011903ba41948f75cbcdf35b86f3f8b18e1071a7d  Battle.net-Setup.exe

2015年1月2日 星期五

台製 X510M 臨時天線架設心得

X510M 基本資訊

接收中頻 : 145 and 435 MHz
發射中頻 : 145 and 435 MHz
感度 : 8.3 dB (145) and 11.7 dB (435)
全長 : 5.2 m
重量 : 2 kg
最大輸入功率 : 200 w
最大架設風速 : 40 m/s
接頭 : M 頭母
天線型式 : 5/8 波長 3(145) and 8(435) 加感線圈


準備工具

必要

鋁/鐵(PVC包覆)/銅(PVC包覆)管, 直徑 2 cm 以上 : 長度照環境需求, 固定用中柱.
十字螺絲起子
6吋活動板手
信號線 M 頭
電氣膠帶

選用

天線架或角鐵+膨脹螺絲

架設地點選擇

可以參考 Radio Mobile WEB Site , 以下是我的計算結果 144.64M Hz




架設完工照片



注意事項


  1. 高壓電線附近因為感應, 不得架設
  2. 陰天或雨天會有雷擊, 不得架設
  3. 固定內部銅管時請勿用力鎖, 會造成銅管變形難拆
  4. 接地措施為必備, 避免產生靜電火花
  5. 防風防雷為必備措施

參考文件

2014年3月1日 星期六

Troubleshooting the Networking.

檢查流程
Q1. 未知系統 IP / Netmask 與 Gateway
A1. 使用 tcpdump 或 wireshark 截取 broadcast 與 multicast 封包 ,
分析 IP Address 與 Netmask , 之後使用 broadcast ping 尋找 Gateway. 

範例 :
#tcpdump -i eth0
10:00:00 arp who-has 192.168.1.2 tell 192.168.1.1
10:00:01 arp reply 192.168.1.2 is-at 00:00:00:00:00:02
#ifconfig eth0 192.168.1.3/24
#ping -b 192.168.1.255

可定位空 IP , netmask , gateway .

Q2. 路由不確定
A2. 使用 route add 和 ping 測 internet ip

範例 :
#route add default gw 192.168.1.1
#ping 8.8.8.8
#route del default gw 192.168.1.1
#route add default gw 192.168.1.2
#ping 8.8.8.8

Q3. 可出但無法進來
A3. 檢查 Router 或 Firewall 之 NAT 和保護規則.

Q4. 其他不明原因
A4. 檢查網路卡是否啟用 , ARP Table 是否有收到 , 保存測試流程並將資訊傳送給管理人員.

範例 :
#ifconfig -a
#arp -a
#ping 8.8.8.8
#ping www.google.com

2014年2月13日 星期四

CentOS and RHEL go "yum install" with DVD images

1. Locate your DVD root directory .
ex. /media/CentOS* , /media/RHEL*

2. Create a symbolic link to /media/dvd_image
ln -s /media/CentOS /media/dvd_image

3. Edit /etc/yum.conf.d/dvd.repo , adding the following

[dvd]
name=dvd
baseurl=file:///media/dvd_image/Server
enabled=1
gpgcheck=0

4. Update yum database

yum update

5. Install packages needed

2013年12月14日 星期六

Avoiding Frustration for Adminsitrators

避免挫折感 - 基於事實

當問題發生的時候, 有哪些事情被動作, 哪些東西相關於系統這是非常重要的.

一般人發生問題的處理流程如下 :

1. 使用廣為人知解決方法 : 重置
2. 尋求第二線技術支援
3. 尋求第三線技術支援
4. 退貨或要求追加
5. 改用其他設備

一部份人發生問題的處理流程如下 :

1. 使用廣為人知解決方法 : 重置
2. 收集相關資訊, 尋求第二線技術支援
3. 重現問題, 尋求第三線技術支援
4. 退貨或要求追加
5. 改用其他設備

少部份人發生問題的處理流程如下 :

1. 收集當下相關資訊, 檢查可控制部份異動
2. 改用其他可行之解決備案
3. 重現問題, 尋求第二線技術支援
4. 面對設備缺陷, 尋求改進方法, 退貨或要求追加
5. 改用其他設備

外星人發生問題的處理流程如下 :

1. 檢查軟硬體發生當下資訊, 確認問題發生原因和緊急修復方法
2. 更改軟硬體設計修正錯誤

神發生問題的處理流程如下 :

1. This is the future, not a bug.

避免挫折感 - 開個玩笑然後繼續進步


會選擇以上影片有幾個含意 :

1. 在計劃和應急管理內有緊急修復方法, 或是說逃生方法 ;

很多單位沒有所謂的餘裕度的規劃, 變成頭痛醫頭、腳痛醫腳的現象 ;

當然很多人說沒遇過就不用管那 0.1 % 機率, 或是那小小的進步.




2. 講笑話可以釋放腦袋麻掉的狀況, 尤其在緊急狀況時,

我們很在意失去, 但得到東西後一下子就在心中化作泡沫破掉.

避免挫折感 - 除專業化

技術的成熟度基於能廣泛被使用, 而需要特定設備、工具、環境才能達成,

代表該技術之不成熟; 若該技術成熟, 便可於該基石再發展;

而且可以避免困死人員在特定業務上, 能再彈性使用人員.

避免挫折感 - 為人而做

大量製造的工業革命已經兩百年了, 現在產業所生產 9 成均所謂的奢侈品,

有很強的針對性; 而看得到的進步會吸引顧客, 看不到的進步會改善效率.

但不要忘記改善人們的生活才是最終目的.

2013年10月8日 星期二

安全的八大環節

1. 透明 - 每個細節均可被檢視
2. 紀錄 - 細節均有被用手或儀器存下來
3. 重現 - 凡是發生過就會再發生
4. 時間 - 最大的消耗成本
5. 物體 - 定義影響安全的因素
6. 回復 - 描述流程可逆不可逆性
7. 分割 - 將複雜問題分割成多個次級問題
8. 再生 - 強化以上前者

2013年10月5日 星期六

The Fates and Monkeys , 菲特颱風來了

原始版

過去者(fate)🙈(U+1F648), 不可見, 可耳聞口述
現在者(happening)🙉(U+1F649), 不可聞, 可眼見口述
未來者(debt)🙊(U+1F64A), 不可言, 可耳聞眼見

以上是字型測試, 如果正常應該看到有三隻猴子🙈🙉🙊在上面.

正常版


如果失敗的話請安裝 ttf-ancient-fonts

Debian/Ubuntu :
$sudo apt-get install ttf-ancient-fonts
Windows :
到 http://users.teilar.gr/~g1951d/ 下載所有的 odf 和 ttf 檔並解壓縮到 \Windows\Fonts 目錄底下
詳細操作可以參考 https://webfont.arphic.com/index/wf_install_about.jsp

Ref : http://en.wikipedia.org/wiki/Three_wise_monkeys

2013年10月4日 星期五

區分電腦底下硬體

PCI 底下有 Vendor ID , 最有名的應該是 8086 的 Intel

Device ID 用於區分裝置晶片組

Windows 底下到裝置管理員尋找


Linux 底下就執行
$ lspci -nn                                                                                                               00:00.0 Host bridge [0600]: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller Hub [8086:2a00] (rev 03)
...
USB 也有 Vendor ID (VID) 和 Product ID (PID)

Windows 也是在同一個地方可以找到

Linux 底下就執行
$ lsusb                                                      
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 
...

所以對設備支援不清楚的話可以到以下網站

或使用 VEN 8086 DEV 2415 , VID 1D6B PID 0002 這類的搜尋來尋找驅動程式

也可以到該設備官網尋找

2013年10月3日 星期四

HomePlug AV 1.0 工具 - Faifa

家裡如果有電力線網路的裝置, 在 Windows 介面底下會有 GUI 工具去偵測與分析, 在 Linux 底下同時也有工具使用, 使用方法如下 :

安裝 Faifa 軟體

Debian/Ubuntu :
$sudo apt-get install faifa
RHEL/CentOS :
$sudo yum install faifa
OpenWRT :
#opkg install faifa
使用方法如下
faifa -i <網路設備介面> -m
會看到以下畫面
# faifa  -i eth0.2 -m
Faifa for HomePlug AV (SVN revision 99)
Started receive thread
Supported HomePlug AV frames

type   description
------ -----------
0x0014 Central Coordination Discover List Request
0x6020 Get Bridge Infos Request
0x6038 Get Network Infos Request
0x6048 Get Network Stats Request
0xA000 Get Device/SW Version Request
0xA004 Write MAC Memory Request
0xA008 Read MAC Memory Request
0xA00C Start MAC Request
0xA01C Reset Device Request
0xA020 Write Module Data Request
0xA024 Read Module Data Request
0xA02C Get Watchdog Report Request
0xA030 Get Link Statistics Request
0xA034 Sniffer Mode Request
0xA038 Network Info Request (Vendor-Specific)
0xA040 Check Points Request
0xA048 Loopback Request
0xA04C Loopback Status Request
0xA050 Set Encryption Key Request
0xA054 Get Manufacturing String Request
0xA058 Read Configuration Block Request
0xA068 Get Device Attributes Request
0xA06C Get Ethernet PHY Settings Request
0xA070 Get Tone Map Caracteristics Request

Supported HomePlug 1.0 frames

type   description
------ -----------
0x0000 Channel Estimation Request
0x0004 Set Network Encryption Key Request
0x0007 Parameters and Statistics Request
0x0019 Set Local parameters Request
0x001D Set Local Overrides Request

Choose the frame type (Ctrl-C to exit): 0x
 
因為 Powerline 設備是共用同一組實體線路, 所以如果同頻段的話會有干擾, 所以一般店家不建議混插設備, 很容易造成設備無法正確傳送資料.
 
 
 

2013年9月25日 星期三

Filter Model

過濾模型的優缺點
1.適合分析有明顯大小差異
2.多近似於或為流體
3.需有重力或是特定力量施於
4.需有環境差異
5.模型邊界需堅固
6.數量需達到一定程度
7.不適合特殊流體

2013年8月20日 星期二

Crossover 50% discount

From http://linuxtoy.org/archives/codeweavers-crossover-chinese-official-online-with-sale-activity.html

2013 年 9 月 20 日之前購買 CrossOver , 輸入以下代碼 LUChina , 就會有五折優惠 , 還有其他抽獎措施.

2013年3月13日 星期三

新自然輸入法和新酷音最後一版的比較


以下是無修正輸入

A. 新酷音
新酷音跟自然輸入法打起來哪一個比較順手
比比看就知道

詞庫數量新酷音剩
不選字打字新酷音剩
吃葡萄不吐葡萄皮
倒吃葡萄土布出葡萄皮

B. 新自然輸入法
新褲音和自然輸入法打起來哪一個比較順手
比比看就知道

詞庫數量新褲音盛
詞庫數量自然輸入法勝
不選字打自新庫殷盛
不選自打字自然輸入法勝

吃葡萄不土葡萄皮
到吃葡萄土不出葡萄皮

新酷音免 Facebook 連結 + E-mail 綁死...
同時永久免費 :)

2011年6月3日 星期五

修 Flash 會爆音的 bug

關鍵字 : flash , 爆音 , 銳利聲 , Debian , Ubuntu , 64 位元
參考 : http://forums.debian.net/viewtopic.php?f=6&t=64174

1. 抓 binary patch
http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=15;filename=memcpy-10.3.162.29.bsdiff;att=2;bug=620901

2. apt-get install bsdiff

3.
bspatch /usr/lib/flashplugin-nonfree/libflashplayer.so /usr/lib/flashplugin-nonfree/libflashplayer.so2 memcpy-10.3.162.29.bsdiff

4. mv
/usr/lib/flashplugin-nonfree/libflashplayer.so /usr/lib/flashplugin-nonfree/libflashplayer.so.old && mv /usr/lib/flashplugin-nonfree/libflashplayer.so2 /usr/lib/flashplugin-nonfree/libflashplayer.so

5. 重開瀏覽器