[[PageOutline]] = 2008-11-15 = == Event: SC'08 == * [http://www.weather.com/weather/tenday/USTX0057?from=36hr_fcst10DayLink_undeclared Austin 近十日天氣預報] * 展場無線網路測試: {{{ C:\>tracert 140.110.1.1 Tracing route to 140.110.1.1 over a maximum of 30 hops 1 2 ms <1 ms <1 ms conf-rtr-south-vlan203.sc08.org [140.221.224.3] 2 3 ms 1 ms 1 ms core-rtr-1-conf-rtr-south.sc08.org [140.221.251.114] 3 34 ms 33 ms 33 ms nlr-la-rtr-core-rtr-1.sc08.org [140.221.251.134] 4 60 ms 58 ms 59 ms seat-losa-49.layer3.nlr.net [216.24.186.13] 5 62 ms 60 ms 64 ms twaren-1-is-jmb-776.lsanca.pacificwave.net [207.231.241.133] 6 294 ms 313 ms 313 ms la-76-hc-gsr.twaren.net [211.79.48.229] 7 250 ms 313 ms 312 ms hc-76-v20.twaren.net [211.79.60.113] 8 248 ms 313 ms 313 ms 140.110.1.1 Trace complete. My traceroute [v0.73] intrepid (0.0.0.0) Sun Nov 16 00:54:03 2008 Keys: Help Display mode Restart statistics Order of fields quit Packets Pings Host Loss% Snt Last Avg Best Wrst StDev 1. 172.21.253.2 0.0% 259 0.3 0.3 0.2 6.1 0.4 2. 140.110.1.1 0.0% 259 226.3 279.1 221.1 1018. 61.5 jazz@intrepid:~$ sudo iperf -c 140.110.240.192 -u ------------------------------------------------------------ Client connecting to 140.110.240.192, UDP port 5001 Sending 1470 byte datagrams UDP buffer size: 122 KByte (default) ------------------------------------------------------------ [ 3] local 172.21.253.152 port 33083 connected with 140.110.240.192 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec [ 3] Sent 892 datagrams [ 3] Server Report: [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 3] 0.0- 9.9 sec 1.25 MBytes 1.05 Mbits/sec 2.526 ms 0/ 891 (0%) [ 3] 0.0- 9.9 sec 1 datagrams received out-of-order jazz@intrepid:~$ sudo iperf -c 140.110.240.192 -u -w 10M ------------------------------------------------------------ Client connecting to 140.110.240.192, UDP port 5001 Sending 1470 byte datagrams UDP buffer size: 244 KByte (WARNING: requested 10.0 MByte) ------------------------------------------------------------ [ 3] local 172.21.253.152 port 56643 connected with 140.110.240.192 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec [ 3] Sent 893 datagrams [ 3] Server Report: [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec 0.670 ms 0/ 893 (0%) }}} * 展場光纖網路測試: {{{ C:\>tracert 140.110.1.1 Tracing route to 140.110.1.1 over a maximum of 30 hops 1 <1 ms <1 ms <1 ms A-rtr.1851.sc08.org [140.221.141.1] 2 32 ms 1 ms <1 ms core-rtr-1-2-dnoc-rtr-2046-2.sc08.org [140.221.251.69] 3 32 ms 32 ms 32 ms nlr-la-rtr-core-rtr-1.sc08.org [140.221.251.134] 4 58 ms 57 ms 57 ms seat-losa-49.layer3.nlr.net [216.24.186.13] 5 60 ms 59 ms 59 ms twaren-1-is-jmb-776.lsanca.pacificwave.net [207.231.241.133] 6 224 ms 225 ms 224 ms la-76-tp-gsr.twaren.net [211.79.48.209] 7 226 ms 226 ms 226 ms hc-76-v20.twaren.net [211.79.60.113] 8 227 ms 227 ms 227 ms 140.110.1.1 Trace complete. jazz@intrepid:~$ sudo mtr 140.110.1.1 My traceroute [v0.73] intrepid (0.0.0.0) Sun Nov 16 00:44:24 2008 Resolver: Received error response 5. (refused by name server)elds quit Packets Pings Host Loss% Snt Last Avg Best Wrst StDev 1. 172.21.253.2 0.0% 616 0.3 0.2 0.2 1.3 0.1 2. 140.110.1.1 0.0% 616 228.1 228.9 227.6 410.2 12.3 jazz@intrepid:~$ sudo iperf -c 140.110.240.192 -u ------------------------------------------------------------ Client connecting to 140.110.240.192, UDP port 5001 Sending 1470 byte datagrams UDP buffer size: 122 KByte (default) ------------------------------------------------------------ [ 3] local 172.21.253.152 port 50095 connected with 140.110.240.192 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec [ 3] Sent 893 datagrams [ 3] Server Report: [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec 1.975 ms 0/ 892 (0%) [ 3] 0.0-10.0 sec 1 datagrams received out-of-order jazz@intrepid:~$ sudo iperf -c 140.110.240.192 -u -w 10M ------------------------------------------------------------ Client connecting to 140.110.240.192, UDP port 5001 Sending 1470 byte datagrams UDP buffer size: 244 KByte (WARNING: requested 10.0 MByte) ------------------------------------------------------------ [ 3] local 172.21.253.152 port 53022 connected with 140.110.240.192 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec [ 3] Sent 893 datagrams [ 3] Server Report: [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec 1.827 ms 0/ 893 (0%) }}} == BUGFIX: jfbterm (1) == * [DRBL] jfbterm Bug * https://bugs.launchpad.net/ubuntu/+source/jfbterm/+bug/253163 * http://launchpadlibrarian.net/16414131/jfbterm-segfault.txt * http://launchpadlibrarian.net/16414135/jfbterm-segfault-strace.txt * [測試] * 安裝 [http://ftp.twaren.net/Linux/Ubuntu/ubuntu-cd/8.10/ubuntu-8.10-server-amd64.iso Ubuntu 8.10 Server AMD64] * 用 Ubuntu 8.10 的測試步驟: {{{ root@intrepid:~# apt-get update root@intrepid:~# apt-get upgrade root@intrepid:~# reboot root@intrepid:~# uname -a Linux intrepid 2.6.27-7-server #1 SMP Tue Nov 4 20:16:57 UTC 2008 x86_64 GNU/Linux root@intrepid:~# apt-get install jfbterm v86d root@intrepid:~# reboot root@intrepid:~# dpkg -S chvt kbd: /usr/share/man/man1/chvt.1.gz kbd: /bin/chvt root@intrepid:~# chvt 1 root@intrepid:~# rmmod uvesafb ERROR: Module uvesafb does not exist in /proc/modules root@intrepid:~# modprobe uvesafb mode_option=1024x768 root@intrepid:~# screen root@intrepid:~# jfbterm -e ls ... 略 ... color 15 : ffff, ffff cannot mmap(mmio) : Invalid argument Segmentation fault }}} * [備註] 如果沒有 modprobe uvesafb 的話,會缺少 /dev/fb0,因此當執行 jfbterm 時就會出現以下錯誤訊息 {{{ ENCODING: locale = UTF-8 FONT : (4) [iso10646.1]/pcf/U:///usr/share/fonts/X11/misc/unifont.pcf.gz/ encoding : UTF-8,iso10646.1 exec : ls open /dev/fb0: No such file or directory }}} * [備註] 如果沒有裝 v86d 的話,當執行 modprobe uvesafb 時會在 dmesg 看到以下資訊 {{{ [ 703.839376] uvesafb: failed to execute /sbin/v86d [ 703.840224] uvesafb: make sure that the v86d helper is installed and executable [ 703.841494] uvesafb: Getting VBE info block failed (eax=0x4f00, err=-2) [ 703.842307] uvesafb: vbe_init() failed with -22 [ 703.843019] uvesafb: probe of uvesafb.0 failed with error -22 }}} * [備註] 如果有裝 v86d 的話,當執行 modprobe uvesafb 時會在 dmesg 看到以下資訊 {{{ [ 268.848377] uvesafb: VMware, IncVMware virtual machine2.0, VMware virtual machine2.0, 2.0, OEM: V M ware, Inc. VBE support 2.0VMware, IncVMware virtual machine2.0, VBE v2.0 [ 268.884099] uvesafb: no monitor limits have been set, default refresh rate will be used [ 268.885202] uvesafb: VBE state buffer size cannot be determined (eax=0x0, err=0) [ 268.885265] uvesafb: scrolling: redraw [ 268.896617] mtrr: your processor doesn't support write-combining [ 268.909303] Console: switching to colour frame buffer device 128x48 [ 269.938085] uvesafb: framebuffer at 0xf0000000, mapped to 0xffffc20000180000, using 16384k, total 16384k [ 269.938101] fb0: VESA VGA frame buffer device }}} * 編輯 GRUB 的 menu.lst 就可以不用每次都跑 modprobe {{{ #!diff --- menu.lst.org 2008-11-19 06:56:47.000000000 +0800 +++ menu.lst 2008-11-19 06:56:21.000000000 +0800 @@ -125,7 +125,7 @@ title Ubuntu 8.10, kernel 2.6.27-7-server uuid 574912ac-8bd6-4cc7-90c6-8c5362033fec -kernel /boot/vmlinuz-2.6.27-7-server root=UUID=574912ac-8bd6-4cc7-90c6-8c5362033fec ro quiet splash +kernel /boot/vmlinuz-2.6.27-7-server root=UUID=574912ac-8bd6-4cc7-90c6-8c5362033fec ro quiet splash vga=0x305 initrd /boot/initrd.img-2.6.27-7-server quiet }}} * 編輯 GRUB 的 menu.lst 就可以不用每次都跑 modprobe {{{ #!diff --- menu.lst.org 2008-11-19 06:56:47.000000000 +0800 +++ menu.lst 2008-11-19 06:56:21.000000000 +0800 @@ -125,7 +125,7 @@ title Ubuntu 8.10, kernel 2.6.27-7-server uuid 574912ac-8bd6-4cc7-90c6-8c5362033fec -kernel /boot/vmlinuz-2.6.27-7-server root=UUID=574912ac-8bd6-4cc7-90c6-8c5362033fec ro quiet splash +kernel /boot/vmlinuz-2.6.27-7-server root=UUID=574912ac-8bd6-4cc7-90c6-8c5362033fec ro quiet splash vga=0x305 initrd /boot/initrd.img-2.6.27-7-server quiet }}} * 用 modinfo 觀看 Ubuntu 8.10 Kernel 2.6.27-7-server 的 uvesafb 參數包括 scroll、vgapal、pmipal、mtrr、blank、nocrtc、noedid、vram_remap、vram_total、maxclk、maxhf、maxvf、mode_option、vbemode、v86d。 {{{ root@intrepid:~# modinfo uvesafb filename: /lib/modules/2.6.27-7-server/kernel/drivers/video/uvesafb.ko description: Framebuffer driver for VBE2.0+ compliant graphics boards author: Michal Januszewski license: GPL srcversion: 21EDEFDED06E0673208A0D5 depends: vermagic: 2.6.27-7-server SMP mod_unload modversions parm: scroll:Scrolling mode, set to 'redraw', 'ypan', or 'ywrap' (scroll) parm: vgapal:Set palette using VGA registers (invbool) parm: pmipal:Set palette using PMI calls (bool) parm: mtrr:Memory Type Range Registers setting. Use 0 to disable. (uint) parm: blank:Enable hardware blanking (bool) parm: nocrtc:Ignore CRTC timings when setting modes (bool) parm: noedid:Ignore EDID-provided monitor limits when setting modes (bool) parm: vram_remap:Set amount of video memory to be used [MiB] (uint) parm: vram_total:Set total amount of video memoery [MiB] (uint) parm: maxclk:Maximum pixelclock [MHz], overrides EDID data (ushort) parm: maxhf:Maximum horizontal frequency [kHz], overrides EDID data (ushort) parm: maxvf:Maximum vertical frequency [Hz], overrides EDID data (ushort) parm: mode_option:Specify initial video mode as "x[-][@]" (charp) parm: vbemode:VBE mode number to set, overrides the 'mode' option (ushort) parm: v86d:Path to the v86d userspace helper. (string) root@intrepid:~# LANG=C apt-cache policy v86d v86d: Installed: 0.1.5-1ubuntu2 Candidate: 0.1.5-1ubuntu2 Version table: *** 0.1.5-1ubuntu2 0 500 http://tw.archive.ubuntu.com intrepid/universe Packages 100 /var/lib/dpkg/status root@intrepid:~# LANG=C apt-cache policy jfbterm jfbterm: Installed: 0.4.7-7.2 Candidate: 0.4.7-7.2 Version table: *** 0.4.7-7.2 0 500 http://tw.archive.ubuntu.com intrepid/universe Packages 100 /var/lib/dpkg/status }}} * 追蹤 jfbterm 的 deb package 原始碼 {{{ root@intrepid:~# apt-get build-dep jfbterm root@intrepid:~# apt-get install dpkg-dev root@intrepid:~# apt-get source jfbterm }}} * uvesafb 作者的推測: {{{ As to why the console becomes unresponsive after exiting jfbterm -- jfbterm sets KD_GRAPHICS mode on the console on which it is started, and apparently fails to set it back to KD_TEXT before segfaulting. This leaves the console in the broken state. }}} * 尋找合理懷疑對象: {{{ root@intrepid:~/jfbterm-0.4.7# grep "KD_GRAPHICS" * vterm.c: ioctl(0, KDSETMODE, KD_GRAPHICS); root@intrepid:~/jfbterm-0.4.7# grep "KD_TEXT" * main.c: if (mode == KD_TEXT) { vterm.c: ioctl(0, KDSETMODE, KD_TEXT); }}}