Building Embedded Linux Systems using PCM7230

Size: px
Start display at page:

Download "Building Embedded Linux Systems using PCM7230"

Transcription

1 Building Linux Systems using PCM7230 System (EOS) Lab

2 Outline Hardware platform Linux porting

3 Reference Info Building Linux System, by Karim Yaghmour, O Reilly

4 Hardware platform

5 4 Major Parts Cross-platform Development Environment 包含了 cross-compiler 以及 system libraries 等 Bootloader Target power on 之後執行的第一個程式, 負責 initial 基本的 devices, 並且負責載入 Linux kernel Linux Kernel Root Filesystem Linux 要運作, 除了 kernel 本身之外, 還需要許多檔案, 包括許多 programs 和設定檔, root filesystem 就是用來放這些東西 Kernel boot up 後會將 root filesystem mount 起來

6 Porting Roadmap Setup cross-platform development tools Setup workspace Download toolchain source Compile kernel Setup root filesystem Create fs hierarchy Setup RAM disk Setup kernel headers Install libraries Setup binary utilities Install kernel modules Setup bootstrap compiler Install kernel images Setup C library Create device files Setup full compiler Install system utilities

7 Porting Roadmap (cont ) Setup cross-platform development tools 首先, 我們要設定好開發環境和開發工具, 用來 cross-compile Linux kernel 以及要放在 target 上執行的程式 Compile kernel Compile 要放在 target 上運行的 Linux kernel Setup root filesystem 準備好 root filesystem 的內容 Setup RAM disk 將準備好的 root filesystem 做成 RAM disk image

8 Setup Cross-platform Development Environment

9 Setup Cross-platform Development Environment Setup cross-platform development tools Setup workspace Download toolchain source Compile kernel Setup root filesystem Create fs hierarchy Setup RAM disk Setup kernel headers Install libraries Setup binary utilities Install kernel modules Setup bootstrap compiler Install kernel images Setup C library Create device files Setup full compiler Install system utilities

10 Setup Project Workspace Setup cross-platform development tools Setup workspace Download toolchain source Compile kernel Setup root filesystem Create fs hierarchy Setup RAM disk Setup kernel headers Install libraries Setup binary utilities Install kernel modules Setup bootstrap compiler Install kernel images Setup C library Create device files Setup full compiler Install system utilities

11 Setup Project Workspace 首先設定我們 project 的 workspace, 建立如下頁的 directory structure 我們之後執行的 command 將會 depend on 這個 directory structure, 依照這個 structure 可以方便我們工作的進行 盡量將自己修改的 code 和網路上 download 下來的 package 分開以免混淆, 也方便版本管理 最好不要把 workspace 設定在 system-wide 的地方, 放在 home directory 會是比較好的選擇

12 Setup Project Workspace (cont ) 建立如下的目錄結構 ( $PRJROOT ) bootldr/ build-tools/ debug/ doc/ images/ kernel/ rootfs/ sysapps/ tmp/ tools/ build-binutils/ build-boot-gcc/ build-glibc/ build-gcc/ ( $PREFIX ) boot loader toolchain source kernel source arm-linux/ ( $TARGET_PREFIX ) document debugging tools binaries of boot loader, kernel, root file system root file system system applications build 好的 toolchain

13 Shell Script to Set Environment Variables 寫一個如下的 shell script export PROJECT=PCM7230 # project name export PRJROOT=~/$PROJECT # project directory export TARGET=arm-linux # target architecture export PREFIX=$PRJROOT/tools # where utilities to be installed export TARGET_PREFIX=$PREFIX/$TARGET # target dependent header files and library export PATH=$PREFIX/bin:$PATH PROJECT 必須是先前 directory structure 的根目錄名稱

14 Shell Script to Set Environment Variables (cont ) 這個 shell script 設定一些我們之後指令需要的一些 environment variables PROJECT 以及 PRJROOT 設定 workspace 所在的路徑 TARGET 設定 target 的 architecture, 也指定 cross-platform development tools 的 architecture PREFIX 指定 cross-platform development tools 的路徑 TARGET_PREFIX 設定 target-dependent 的 header files 以及 libraries 的路徑 PATH 加入 cross-platform utilities 的路徑 $PREFIX/bin

15 Shell Script to Set Environment Variables (cont ) 假設存檔為 develop.sh 執行方法 讓原本的 shell 去執行這個 shell script, 不 fork 出新的 shell, 才能設定目前 shell 的 environment variables $. develop.sh 或 $ source develop.sh

16 Setup Development Tools Setup cross-platform development tools Setup workspace Download toolchain source Compile kernel Setup root filesystem Create fs hierarchy Setup RAM disk Setup kernel headers Install libraries Setup binary utilities Install kernel modules Setup bootstrap compiler Install kernel images Setup C library Create device files Setup full compiler Install system utilities

17 Setup Development Tools (cont ) 3 packages binutils gcc Binary utilities, such as assembler, linker, archive manipulator etc. GNU project C and C++ compiler, the cross-compiler we need glibc GNU C library

18 Flowchart binutils source Host gcc binutils Linux kernel source glibc source gcc source Host gcc Bootstrap compiler glibc Host gcc Full compiler

19 Flowchart (cont ) Step 1. Setup kernel headers Linux kernel source

20 Flowchart (cont ) binutils source Host gcc binutils Step 2. Setup binary utilities Linux kernel source

21 Flowchart (cont ) binutils source Host gcc binutils Linux kernel source Step 3. Setup bootstrap compiler gcc source Host gcc Bootstrap compiler

22 Flowchart (cont ) binutils source Host gcc binutils Linux kernel source glibc source Step 4. Setup C library gcc source Host gcc Bootstrap compiler glibc

23 Flowchart (cont ) binutils source Host gcc binutils Linux kernel source glibc source gcc source Host gcc Bootstrap compiler glibc Step 5. Setup full compiler Host gcc Full compiler

24 Download GNU Development Toolchain Setup cross-platform development tools Setup workspace Download toolchain source Compile kernel Setup root filesystem Create fs hierarchy Setup RAM disk Setup kernel headers Install libraries Setup binary utilities Install kernel modules Setup bootstrap compiler Install kernel images Setup C library Create device files Setup full compiler Install system utilities

25 Download GNU Development Toolchain 現成的 binaries ftp://ftp.arm.linux.org.uk/pub/linux/arm/toolchain/ Source code ftp://ftp.gnu.org/ gnu/binutils/binutils-2.14.tar.gz gnu/gcc/gcc tar.gz gnu/glibc/glibc tar.gz gnu/glibc/glibc-crypt-2.1.tar.gz glibc 2.1.x 需要 glibc-crypt gnu/glibc/glibc-linuxthreads tar.gz glibc 的一個 add-on library 抓的時候要 match glibc 的 version 把 download 下來的.tar.gz files 放到 build-tools/

26 Known functional package version combinations Host Target Kernel binutils gcc glibc Patchs i386 PPC PPC i PPC i i386 ARM rmk Yes PPC ARM Yes i386 MIPS egcs Yes i386 SuperH Yes Sparc (Solaris) PPC The kernel version does not really matter for the build of the toolchain Build binutils 時通常不會有什麼問題, 用比較新的版本大概也不會有什麼問題

27 (Target) Kernel Headers Setup Setup cross-platform development tools Setup workspace Download toolchain source Compile kernel Setup root filesystem Create fs hierarchy Setup RAM disk Setup kernel headers Install libraries Setup binary utilities Install kernel modules Setup bootstrap compiler Install kernel images Setup C library Create device files Setup full compiler Install system utilities

28 Why do I need to get kernel source right now? 其實也沒有為什麼, 事實上 compile C library 時才會需要用到 kernel headers, 你可以晚點再做這個步驟

29 (Target) Kernel Headers Setup 從網路上下載 linux rmk4-pxa1.tar.gz 放到 kernel/ 解壓縮 $ cd $PRJROOT/kernel/ $ tar xvzf linux rmk4-pxa1.tar.gz 為了方便辨識 kernel 版本 $ mv linux linux 解壓縮之後裡面會有兩個目錄 : CVS/, kernel/ kernel 裡面才是我們要的 linux source code Patch 廠商提供的 source code 已經 patch 過 pcmcia 的 driver, 不過我們不會用到

30 (Target) Kernel Headers Setup (cont ) Background knowledge ARM1 為 26-bits address space ARM2 為 26-bits address space ARM3 為 32-bits address space, 但相容 26-bits address space ARM4 為 32-bits address space, 停止支援 26-bits address space, 在 T 系列加入 16-bits 的 Thumb instructions ARM5 為 32-bits address space, 所有系列都支援 Thumb instructions

31 (Target) Kernel Headers Setup (cont ) Configuring kernel 進入 linux /kernel/ $ make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig ARCH target architecture CROSS_COMPILE 設定 cross-development tools 的名稱 設定完之後 exit, save 若成功, 會產生出 include/linux/version.h

32 (Target) Kernel Headers Setup (cont )

33 (Target) Kernel Headers Setup (cont )

34 (Target) Kernel Headers Setup (cont ) 複製 build toolchain 所需的 header files $ mkdir -p $TARGET_PREFIX/include $ cp -r include/linux/ $TARGET_PREFIX/include/ $ cp -r include/asm-arm/ $TARGET_PREFIX/include/asm Architecture-dependent assembly $ cp -r include/asm-generic/ $TARGET_PREFIX/include/

35 (Target) Kernel Headers Setup (cont ) ( $PRJROOT ) bootldr/ build-tools/ debug/ doc/ images/ kernel/ rootfs/ sysapps/ tmp/ tools/ build-binutils/ build-boot-gcc/ build-glibc/ build-gcc/ linux / ( $PREFIX ) arm-linux/ ( $TARGET_PREFIX ) include/ asm/ asm-generic/ linux/

36 Binary Utilities Setup Setup cross-platform development tools Setup workspace Download toolchain source Compile kernel Setup root filesystem Create fs hierarchy Setup RAM disk Setup kernel headers Install libraries Setup binary utilities Install kernel modules Setup bootstrap compiler Install kernel images Setup C library Create device files Setup full compiler Install system utilities

37 Utilities in binutils Package Utility as ld gasp ar nm objcopy objdump ranlib readelf size strings strip c++filt addr2line Use The GNU assembler The GNU linker The GNU assembler pre-processor Creates and manipulate archive content Lists the symbols in an object files Copies and translates object files Displays information about the content of object files Generates an index to the content of an archive Displays information about an ELF format object file Lists the sizes of sections within an object file Prints the strings of printable characters in object files Strips symbols from object files Converts low-level mangled assembly labels resulting from overloaded c++ functions into their user-level names Converts addresses into line numbers within original source files

38 Binary Utilities Setup 解壓縮 $ cd $PRJROOT/build-tools/ $ tar -xvzf binutils-2.14.tar.gz Configure $ cd build-binutils $../binutils-2.14/configure --target=$target --prefix=$prefix Makefile 和 configuration 會被放到 build-tools/build-binutils/ --prefix 要安裝到哪裡 Compile $ make Install $ make install tools 會被安裝到 tools/bin/

39 Binary Utilities Setup (cont ) ( $PRJROOT ) tools/ ( $PREFIX ) arm-linux/ ( $TARGET_PREFIX ) info/ lib/ man/ share/ bin/ include/ lib/ arm-linux-addr2line arm-linux-ar arm-linux-as arm-linux-c++filt arm-linux-ld arm-linux-nm arm-linux-objcopy arm-linux-objdump arm-linux-ranlib arm-linux-readelf arm-linux-size arm-linux-strings arm-linux-strip bin/ ar as ld nm ranlib strip

40 Bootstrap Compiler Setup Setup cross-platform development tools Setup workspace Download toolchain source Compile kernel Setup root filesystem Create fs hierarchy Setup RAM disk Setup kernel headers Install libraries Setup binary utilities Install kernel modules Setup bootstrap compiler Install kernel images Setup C library Create device files Setup full compiler Install system utilities

41 What is Bootstrap Compiler? gcc 的 source code 必須 depend on glibc 才能 compile 出完整的 gcc compiler 到目前為止, 我們還沒有 for ARM 的 glibc 在沒有 glibc 的情況下, gcc 的 source code 能夠靠自己 build 出只 support C language 的 compiler 我們會利用這個 c compiler 來 compile glibc

42 Bootstrap Compiler Setup 解壓縮 $ cd $PRJROOT/build-tools $ tar -xvzf gcc tar.gz The -Dinhibit_libc hack for ARM target 因為 build gcc 時, 需要 target 的 libc 的 header, 但這時還沒有, 現在得做點手腳 (EXPLAIN XXXXXX clearly) $ vi gcc /gcc/config/arm/t-linux TARGET_LIBGCC2_CFLAGS 增加 -Dinhibit_libc 和 -D gthr_posix_h 變成醬 : TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer -fpic -Dinhibit_libc \ -D gthr_posix_h

43 Bootstrap Compiler Setup (cont ) Configure $ cd build-boot-gcc/ $../gcc /configure --target=$target --prefix=$prefix \ > --without-headers --with-newlib --enable-languages=c --disable-threads Makefile 和 configuration 會被放到 build-tools/build-boot-gcc/ --target --prefix 要安裝到那裡 --without-headers 因為沒有 target 的 system header files 要等 glibc build 出來才有 --with-newlib 不使用 glibc, 因為還沒被 build 出來 --enable-languages=c 現在只 support C 就好 --disable-threads The -Dinhibit_libc hack 應該是因為 --without-headers 不靈光 Compile $ make all-gcc Install $ make install-gcc

44 Bootstrap Compiler Setup (cont ) ( $PRJROOT ) tools/ ( $PREFIX ) include/ info/ lib/ man/ share/ gcc-lib/ bin/ arm-linux-addr2line arm-linux-ar arm-linux-as arm-linux-c++filt arm-linux-gcc arm-linux-ld arm-linux-nm arm-linux-objcopy arm-linux-objdump arm-linux-protoize arm-linux-ranlib arm-linux-readelf arm-linux-size arm-linux-strings arm-linux-strip arm-linux-unprotoize cpp gcov arm-linux/ ( $TARGET_PREFIX ) include/ lib/ sys-include/ bin/ ar as gcc ld nm ranlib strip

45 C Library Setup Setup cross-platform development tools Setup workspace Download toolchain source Compile kernel Setup root filesystem Create fs hierarchy Setup RAM disk Setup kernel headers Install libraries Setup binary utilities Install kernel modules Setup bootstrap compiler Install kernel images Setup C library Create device files Setup full compiler Install system utilities

46 C Library Setup 解壓縮 $ cd $PRJROOT/build-tools/ $ tar -xvzf glibc tar.gz $ tar -xvzf glibc-crypt-2.1.tar.gz --directory=glibc 如果有要用 glibc-crypt 的話 $ tar -xvzf glibc-linuxthreads tar.gz \ > --directory=glibc-2.1.3

47 C Library Setup (cont ) Configure $ cd build-glibc/ $ CC=arm-linux-gcc../glibc-2.1.3/configure --host=$target \ > --prefix="/usr" --enable-add-ons \ > --with-headers=$target_prefix/include Makefile 和 configuration 會被放到 build-tools/build-glibc/ CC=arm-linux-gcc 把 CC 設成我們 build 的 gcc --host=$target 這個 glibc 是要放在 target 上跑的, 對它來說, host 是我們的 target --prefix="/usr" 這個 glibc 會在 target 的 root file system 的 /usr, Linux 預期一些 glibc component 會被放在 /lib, /usr/lib 這些位置被 hardcode 在 glibc 裡但等一下 install 的時候不能裝在我們 host 端的 /usr --enable-add-ons for linuxthreads --with-headers 用我們弄的 linux kernel header files

48 C Library Setup (cont ) Compile $ make Make 的時候不要做其他事, 因為 C library 是一個很大的 package, 有可能因為 memory 不足產生 error, 若發生請 make clean 再重新 make Install $ vi $PRJROOT/build-tools/glibc-2.1.3/Makeconfig 去掉 all-subdirs 的 manual, 不裝 man page... X-D $ make install_root=$target_prefix prefix="" install 把 glibc 裝到 $TARGET_PREFIX 不要亂裝, 不然 host 端的 library 就毀了 glibc 裡原本會被裝到 $install_root/$prefix/usr/lib/ 的東西, 現在改裝到 $install_root/$prefix/lib/ ( 不了為什麼要醬 )

49 C Library Setup (cont ) Configure libc.so link script $ cd $TARGET_PREFIX/lib/ $ cp libc.so libc.so.orig backup 預設值 $ vi libc.so 編輯 libc.so /* GNU ld script Use the shared library, but some functions are only in the static library, so try that secondarily. */ GROUP ( /lib/libc.so.6 /lib/libc_nonshared.a ) 改成醬 : /* GNU ld script Use the shared library, but some functions are only in the static library, so try that secondarily. */ GROUP ( libc.so.6 libc_nonshared.a ) 以後 linker 就會 link 我們 build 的 library

50 C Library Setup (cont ) ( $PRJROOT ) tools/ ( $PREFIX ) include/ info/ lib/ man/ share/ gcc-lib/ bin/ arm-linux-addr2line arm-linux-ar arm-linux-as arm-linux-c++filt arm-linux-gcc arm-linux-ld arm-linux-nm arm-linux-objcopy arm-linux-objdump arm-linux-protoize arm-linux-ranlib arm-linux-readelf arm-linux-size arm-linux-strings arm-linux-strip arm-linux-unprotoize cpp gcov arm-linux/ ( $TARGET_PREFIX ) etc/ include/ lib/ libexec/ sbin/ share/ sys-include/ bin/ ar as gcc ld ldd nm ranlib strip

51 Full Compiler Setup Setup cross-platform development tools Setup workspace Download toolchain source Compile kernel Setup root filesystem Create fs hierarchy Setup RAM disk Setup kernel headers Install libraries Setup binary utilities Install kernel modules Setup bootstrap compiler Install kernel images Setup C library Create device files Setup full compiler Install system utilities

52 Full Compiler Setup Configure $ cd $PRJROOT/build-tools/build-gcc/ $../gcc-<version>/configure --target=$target --prefix=$prefix \ > --enable-languages=c,c++ Compile $ make all all gcc package 全部的 component Install $ make install

53 Full Compiler Setup (cont ) ( $PRJROOT ) tools/ ( $PREFIX ) include/ g++-3/ info/ lib/ man/ share/ gcc-lib/ bin/ arm-linux-addr2line arm-linux-ar arm-linux-as arm-linux-c++ arm-linux-c++filt arm-linux-g++ arm-linux-gcc arm-linux-ld arm-linux-nm arm-linux-objcopy arm-linux-objdump arm-linux-protoize arm-linux-ranlib arm-linux-readelf arm-linux-size arm-linux-strings arm-linux-strip arm-linux-unprotoize cpp gcov arm-linux/ ( $TARGET_PREFIX ) etc/ include/ lib/ libexec/ sbin/ share/ sys-include/ bin/ ar as gcc ld ldd nm ranlib strip

54 What s s in the $PRJROOT/tools/ now? ( $PRJROOT ) tools/ ( $PREFIX ) arm-linux/ bin/ include/ info/ lib/ man/ share/ ( $TARGET_PREFIX ) bin/ etc/ include/ info/ lib/ libexec/ sbin/ share/ sys-include/ glibc-related target binaries 要放在 target 的 /etc/ 的檔案 header files for target glibc info files, 不過沒裝 target 的 /lib/ i18n 的東西 target 的 /sbin/ headers for cross-development tools gcc info files libraries for cross-development tools man pages for cross-development tools binary helpers cross-development utilities files shared among cross-development tools & libraries

55 Finalizing Toolchain Setup build binutils 時, 有些 host 的 utilities 會被 copy 到 $TARGET_PREFIX/bin/ 給某些 GNU utilities ( e.g. gcc ) 用 ( e.g. tools/bin/arm-linux-as tools/arm-linux/bin/as ) 但因為 $TARGET_PREFIX/bin/ 這個目錄我們是拿來放 target binaries 的, 為了不要混淆, 把原本那幾個 host utilities 搬走 下面的指令列出 cross-compiler 的 search path $ arm-linux-gcc -print-search-dirs install: /home/ratbert/embedded_linux/s3c2410tk/tools/lib/gcc-lib/arm-linux/2.95.3/ programs: /home/ratbert/embedded_linux/s3c2410tk/tools/lib/gcc-lib/arm- linux/2.95.3/:/home/ratbert/embedded_linux/s3c2410tk/tools/lib/gcc-lib/arm- programs 第一個目錄 $PREFIX/lib/gcc-lib/arm-linux/2.95.3/ 是放 gcc libraries 和 utilities 的 我們要把上面說的那幾個 host binaries 搬到這邊 $ cd $TARGET_PREFIX/bin/ $ mv ar as gcc ld nm ranlib strip \ > $PREFIX/lib/gcc-lib/arm-linux/2.95.3/

56 Finalizing Toolchain Setup (cont ) ( $PRJROOT ) tools/ ( $PREFIX ) include/ g++-3/ info/ lib/ man/ share/ gcc-lib/ arm-linux/ / 搬到這邊 bin/ arm-linux-addr2line arm-linux-ar arm-linux-as arm-linux-c++ arm-linux-c++filt arm-linux-g++ arm-linux-gcc arm-linux-ld arm-linux-nm arm-linux-objcopy arm-linux-objdump arm-linux-protoize arm-linux-ranlib arm-linux-readelf arm-linux-size arm-linux-strings arm-linux-strip arm-linux-unprotoize cpp gcov arm-linux/ ( $TARGET_PREFIX ) etc/ include/ lib/ libexec/ sbin/ share/ sys-include/ 一樣的東西 bin/ ar as gcc ld ldd nm ranlib strip

57 Compiling the Kernel

58 Compiling the Kernel Setup cross-platform development tools Setup workspace Download toolchain source Compile kernel Setup root filesystem Create fs hierarchy Setup RAM disk Setup kernel headers Install libraries Setup binary utilities Install kernel modules Setup bootstrap compiler Install kernel images Setup C library Create device files Setup full compiler Install system utilities

59 Selecting a Kernel Architecture x86 ARM PowerPC Most apporopriate kernel location Available download means ftp, http, rsync ftp, rsync ftp, http, rsync, bitkeeper MIPS SuperH M68k cvs cvs ftp, http Some of these sites, such as ARM site, don't necessarily distribute full kernels. Rather, they distribute patches to the official kernel. Most of the time, the latest known-to-be-functional version is the best one to use. (not always true) versions 的 kernel, 有很多改變被 integrate 進去, 不 stable

60 Kernel Version Variations maintainers 常會在 kernel 版本後面加上自己的 extension Russell King (ARM tree 的 maintainer) Nicolas Pitre handhelds.org Familiar distribution 的 maintainer -rmk -np -hh Ex rmk3-hh24 handhedls.org Release 24 BASED ON Russell's Release 3 BASED ON Marcelo Tosatti 的 Linus Torvalds 把 2.4.x series 的 maintainance 交給 Marcelo, 然後專心在 2.5.x development series ( 現在 2.6.x 出來了, 不知情況如何 )

61 Compiling the Kernel Configuring the kernel $ cd $PRJROOT/kernel/linux $ make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig

62 Compiling the Kernel (cont ) Building dependencies $ make ARCH=arm CROSS_COMPILE=arm-linux- dep $ make clean ARCH 用來決定 make 時要用那個 architecture-dependent 的目錄每個 make command 都得設這個變數, 就算是 make clean 也要不過因為之前 patch 完 Makefile 裡面已經設定 ARCH=arm 所以可以省掉 CROSS_COMPILE 設定 tool 的 name 用的 compile source code 的時候才需要, 所以可以省略, 而且事實上 patch 完的 Makefile 裡面也設好了

63 Compiling the Kernel (cont ) Building the kernel $ make ARCH=arm CROSS_COMPILE=arm-linux- zimage ARCH 和 CROSS_COMPILE 都可以不用設, 因為 Makefile 裡設好了 zimage build 用 gzip 壓縮的 kernel image generate 出來的 image 不能大於 512 KB bzimage big zimage 也是用 gzip 壓縮, 跟 bzip2 沒關沒有 512 KB 的限制 uimage kernel image for U-Boot ( 新版本 Linux 才支援 ) vmlinux build 沒壓縮的 kernel image (ELF format) Building the modules $ make ARCH=arm CROSS_COMPILE=arm-linux- modules

64 Compiling the Kernel (cont ) 每種不同的 kernel configuration 有四個檔案要保存 ( $PRJROOT ) images/ Kernel/ linux /.config System.map arch/ arm/ vmlinux boot/ configuration file kernel symbol map target architecture zimage compressed kernel image uncompressed kernel image

65 Compiling the Kernel (cont ) Managing multiple kernel images 把剛剛 compile 好的 kernel 放到 $PRJROOT/images/ 集中保管 因為在進行 project 的過程中, 常常需要測試不同 configuration 的 kernel, 所以我們得做點區分 $ cp arch/arm/boot/zimage \ > $PRJROOT/images/zImage $ cp.config \ > $PRJROOT/images/.config $ cp vmlinux \ > $PRJROOT/images/vmlinux $ cp System.map \ > $PRJROOT/images/System.map

66 Compiling the Kernel (cont ) Installing the modules $ make ARCH=arm CROSS_COMPILE=arm-linux- \ > INSTALL_MOD_PATH=$PRJROOT/images/modules rmk4-pxa1 > modules_install INSTALL_MOD_PATH modules 會被安裝到 $INSTALL_MOD_PATH/lib/modules/ 會發生 error: not for this archteture 原因是原本的 depmod 指令不適用於 cross-compiler 參考 Building the embedded Linux system p.167~p.168

67 Root File System Setup

68 Root File System Setup Setup cross-platform development tools Setup workspace Download toolchain source Compile kernel Setup root filesystem Create fs hierarchy Setup RAM disk Setup kernel headers Install libraries Setup binary utilities Install kernel modules Setup bootstrap compiler Install kernel images Setup C library Create device files Setup full compiler Install system utilities

69 Root Filesystem / bin/ boot/ dev/ etc/ home/ lib/ mnt/ opt/ proc/ root/ sbin/ tmp/ usr/ var/ essential user command binaries static files used bye the bootloader devices and other special files system configuration files, including startup files user home directories, including entries for services such as FTP essential libraries, such as the C library, and kernel modules mount point for temporarily mounted filesystems add-on software packages virtual filesystem for kernel and process information root user's home directory essential system administration binaries temporary files most applications and documents useful for most users variable data stored by daemons and utilities

70 Filesystem Hierarchy Standard (FHS) Filesystem Hierarchy Standard (FHS) 建立 root filesystem 的 official rule 這些規則主要針對多人系統, embedded linux system 通常沒有 user 和 administrator, 我們不用太嚴格的遵循這些規範 為了多使用者環境的目錄都可以省略 : /home, /mnt, /opt, /root 可以省略但不建議, 因為有些程式會需要這些目錄 : /tmp, /var 有的 bootloader 可以不需要 /boot 這個目錄 必要的 : /bin, /dev, /etc, /lib, /proc, /sbin, /usr

71 Create Filesystem Hierarchy Setup cross-platform development tools Setup workspace Download toolchain source Compile kernel Setup root filesystem Create fs hierarchy Setup RAM disk Setup kernel headers Install libraries Setup binary utilities Install kernel modules Setup bootstrap compiler Install kernel images Setup C library Create device files Setup full compiler Install system utilities

72 Create Filesystem Hierarchy 建目錄 $ cd $PRJROOT/rootfs/ $ mkdir bin dev etc lib proc sbin tmp usr var $ chmod 1777 tmp/ sticky bit /tmp 內的檔案只有 owner 可以刪掉 $ mkdir usr/bin usr/lib usr/sbin $ mkdir var/lib var/lock var/log var/run var/tmp $ chmod 1777 var/tmp/

73 Install Libraries Setup cross-platform development tools Setup workspace Download toolchain source Compile kernel Setup root filesystem Create fs hierarchy Setup RAM disk Setup kernel headers Install libraries Setup binary utilities Install kernel modules Setup bootstrap compiler Install kernel images Setup C library Create device files Setup full compiler Install system utilities

74 Install Libraries 之前 compile 好的 glibc 都在 $TARGET_PREFIX/lib/ 底下 主要分為四種檔案 Actual shared libraries 真正的 shared library 檔案檔名格式 liblibrary_name-glibc_version.so ex. libm so Major revision version symbolic links 主要改版版本的 symbolic link, 會 link 到 actual shared library 檔名格式 liblibrary_name.so.major_revision_version ex. libm.so.6 -> libm so

75 Install Libraries (cont ) Version-independent symbolic links to the major revision version symbolic links 和版本無關的 symbolic link, 會 link 到 major revision version symbolic link 這種 link 是為了提供要 link library 的程式一個一致的檔名 檔名格式 liblibrary_name.so ex. libm.so -> libm.so.6 -> libm so libc.so 是唯一的例外, 是 link script Static library archives 讓程式 statically link 的 archive 檔名格式 liblibrary_name.a ex. libdl.a

76 Install Libraries (cont ) 以上四類檔案, 對於 run time, 我們只需要每個 library 的 actual shared libraries 和 major revision version symbolic links, 其他的只有 linking 的時候會用到 除了 library 之外, 我們還必須拷貝 dynamic linker 檔名格式 ld-glibc_version.so dynamic linker 的 symbolic link 在 i386, ARM, SuperH, m68k 上檔名格式 ld-linux.so.major_revision_version 在 MIPS, PowerPC 上, 檔名格式 ld.so.major_revision_version 接下來, 挑選我們的程式所需的 library, 複製到 root filesystem

77 Library Components in glibc Library component ld libbrokenlocale libsegfault libanl libc libcrypt libdl libm libmemusage libnsl Content Dynamic linker Fixup routines to get applications with broken locale features to run. Overrides application defaults through preloading. (Need to use LD_PRELOAD) Routines for catching segmentation faults and doing backtraces Asynchronous name lookup routines Main C library routines Cryptography routines Routines for loading shared objects dynamically Math routines Routines for heap and stack memory profiling NIS network services library routines Inclusion guidelines 必要很少用到很少用到很少用到必要 for authentication 相關的軟體用到 dlopen() 之類 function 的軟體 math functions 很少用到很少用到

78 Library Components in glibc (cont ) libnss_compat libnss_dns libnss_files libnss_hesiod libnss_nis libnss_nisplus libpcprofile libpthread libresolv librt libthread_db libutil Name Switch Service (NSS) compatibility routines for NIS NSS routines for DNS NSS routines for file lookups NSS routines for Hesiod name service NSS routines for NIS NSS routines for NIS plus Program counter profiling routines Posix c threads routines for Linux Name resolver routines Asynchronous I/O routines Thread debugging routines Login routines, part of user accounting database glibc NSS 自動載入 glibc NSS 自動載入 glibc NSS 自動載入 glibc NSS 自動載入 glibc NSS 自動載入 glibc NSS 自動載入 很少用到 for threads programming for name resolution 很少用到 gdb 在 debug threaded applications 時自動載入, 不會被任何 application link terminal connection management

79 Choose Libraries 通常我們可以用 ldd 這個指令來看一個程式 link 了哪些 shared library, 不過這個指令沒辦法處理 cross-platform 的 binary 我們可以改用先前 build 出來的 cross-platform 工具裡的 readelf 來找出一個程式用了哪些 shared library $ arm-linux-readelf -a 檔名 grep "Shared library" 0x (NEEDED) Shared library: [libc.so.6]

80 Copy Libraries to Root Filesystem 決定好所需的 library, 複製到 rootfs/lib/ 底下 $ cd $TARGET_PREFIX/lib/ $ for file in libc libcrypt libdl libm libpthread libresolv libutil > do > cp $file-*.so $PRJROOT/rootfs/lib/ > cp -d $file.so.[*0-9] $PRJROOT/rootfs/lib/ > done 第一個 cp 複製 actual shared library 第二個 cp 複製 major revision version symbolic link -d 保留 symbolic link 把 dynamic linker 複製到 rootfs/lib/ 底下 $ cp -d ld*.so* $PRJROOT/rootfs/lib/

81 Minimize Size of Libraries 我們可以利用之前 build 的 strip 來進一步縮小 target 上 library 的大小 strip 會移除 object file 內所有的 symbol 注意不要 strip 原本的 library $ arm-linux-strip $PRJROOT/rootfs/lib/*.so

82 Install Kernel Modules Setup cross-platform development tools Setup workspace Download toolchain source Compile kernel Setup root filesystem Create fs hierarchy Setup RAM disk Setup kernel headers Install libraries Setup binary utilities Install kernel modules Setup bootstrap compiler Install kernel images Setup C library Create device files Setup full compiler Install system utilities

83 Install Kernel Modules 我們之前把 build 好的 kernel modules 暫時安裝在 $PRJROOT/images/ 現在把 kernel modules 複製到 target 的 /lib 底下 $ cp -a $PRJROOT/images/modules rmk4-pxa1/* $PRJROOT/rootfs/ -a 等於 -dpr 不 dereference symbolic link 保留 mode, ownership, timestamps /etc/modules.conf 設定 modules 的自動載入

84 Install Kernel Image Setup cross-platform development tools Setup workspace Download toolchain source Compile kernel Setup root filesystem Create fs hierarchy Setup RAM disk Setup kernel headers Install libraries Setup binary utilities Install kernel modules Setup bootstrap compiler Install kernel images Setup C library Create device files Setup full compiler Install system utilities

85 Install Kernel Image 把 kernel image 放到 root filesystem 不過 kernel image 放在哪裡是由 bootloader 決定的 暫時跳過這部分

86 Create Device Files Setup cross-platform development tools Setup workspace Download toolchain source Compile kernel Setup root filesystem Create fs hierarchy Setup RAM disk Setup kernel headers Install libraries Setup binary utilities Install kernel modules Setup bootstrap compiler Install kernel images Setup C library Create device files Setup full compiler Install system utilities

87 Device Files 又稱 special file 或 device node 根據 Unix 的傳統, 所有的東西在 Linux system 中都是可見的檔案, 包括各種 device network interface 是個例外 所有的 device file 都被放在 /dev 底下 當我們用 ls -l 來看 device file, 第一個 column 是 device file 的類型 c 表示 character device b 表示 block device 日期前面的兩個數字, 第一個是 major device number, 第二個是 minor device number major device number 指定 device 的 driver, kernel 利用 major device number 在 open() 時 dispatch 到不同的 driver ex. /dev/null 和 /dev/zero 都由 driver 1 管理 minor device number 給 driver 用的, 因為同一個 driver 可以管理多個 device, driver 利用 minor device number 來分辨不同個 device kernel 不會用到 minor device number, 只是單純的 pass 給 driver

88 Basic /dev Entries 我們只需要產生要用到的 device files 即可 Filename mem null zero random tty0 tty1 ttys0 tty console Description Type Major# Minor# Permission bits Physical memory access char Null device char Null byte source char Nondeterministic random number generator char Current virtual console char First virtual console char First UART serial port char Current TTY device char System console char SuperH-based system 上, 第一個 serial port 是 ttysc0 StrongARM-based system 上, 第一個 serial port 是 ttysa0 關於 device file 的詳細文件在 kernel source 的 Documentation/devices.txt

89 Create Device Files mknod 只有 root 才能執行 $ cd $PRJROOT/rootfs/dev/ $ su -m -m 保留環境變數 決定好需要的 device files, 用 mknod 來產生他們 # mknod -m 600 mem c 1 1 # mknod -m 666 null c 1 3 # mknod -m 666 zero c 1 5 # mknod -m 644 random c 1 8 # mknod -m 600 tty0 c 4 0 # mknod -m 600 tty1 c 4 1 # mknod -m 660 ttys0 c 4 64 # mknod -m 660 ttys1 c 4 65 # mknod -m 666 tty c 5 0 # mknod -m 600 console c 5 1 # mknod -m 660 ram0 b 1 0 # mknod -m 660 ram1 b 1 1

90 Create Device Files (cont ) 建立一些必要的 symbolic link # ln -s /proc/self/fd fd # ln -s fd/0 stdin # ln -s fd/1 stdout # ln -s fd/2 stderr 恢復身分 # exit

91 Install System Utilities Setup cross-platform development tools Setup workspace Download toolchain source Compile kernel Setup root filesystem Create fs hierarchy Setup RAM disk Setup kernel headers Install libraries Setup binary utilities Install kernel modules Setup bootstrap compiler Install kernel images Setup C library Create device files Setup full compiler Install system utilities

92 Install System Utilities 有許多基本的 system utilities 你會需要, 例如 ls, ifconfig, ping 之類的 一種方法是自己去一個一個下載 source code 回來 cross compile, 不過這太辛苦了, 有些 project 將必要的 system application 收集起來, 讓 developer 輕鬆點, 例如 : BusyBox TinyLogin (TinyLogin 的功能現在已經被包含在 BusyBox 裡, 不用另外裝, 很方便 ) embutils

93 Install BusyBox BusyBox 可以 statically 或 dynamically link glibc 或 uclibc 從網頁 download BusyBox 的.tar.gz 檔, 放到 $PRJROOT/sysapps/ 底下解開 Configure $ cd $PRJROOT/sysapps/busybox-1.00-pre10/ $ make menuconfig 設定要 support 哪些 command 1.00 的 menuconfig 可以運作, 開心 ^^

94 Main Menu

95 Build Options

96 Coreutils compile 不會過...

97 Coreutils

98 Debian Utilities compile 不會過...

99 Debian Utilities

100 Login/Password Management Utilities getty 會呼叫 login 我用 shadow 會沒辦法 login, 不知道問題在哪

101 Linux Module Utilities

102 Linux System Utilities

103 Save it

104 Install BusyBox (cont ) Compile and install $ make PREFIX=$PRJROOT/rootfs all install

105 Install BusyBox BusyBox 安裝好之後, 只有一個執行檔, $PRJROOT/rootfs/bin/busybox 這個 binary 提供了所有我們 configure 時選擇的 command 的功能 這個執行檔不會被直接呼叫, 而是透過原本 command 名稱的 symbolic link 連到 /bin/busybox 執行檔 busybox 利用 symbolic link 的名稱來決定要執行的 command 這些 symbolic links 分布在 ($PRJROOT/rootfs 底下的 ) /bin, /sbin, /usr/bin, /usr/sbin 這個方法有個缺點是, 你不能隨便取 symbolic name

106 BusyBox V init BusyBox init 提供了 init 大部分的功能 不支援 runlevel BusyBox init 會依序執行下列的工作 1. set up signal handlers for init 2. initializes the console(s) 3. parse the inittab file, /etc/inittab 如果 /etc/inittab 不存在, BusyBox 使用預設值主要是設定下列的 action: system reboot, system halt, init restart, 還有在前四個 virtual consoles 執行 shell 參考 BusyBox 的 Document

107 BusyBox init (cont ) 4. runs the system initialization script (BusyBox 預設 /etc/init.d/rcs) 這個地方適合用來 remount the root filesystem in read-write mode mount additional filesystems initialize and start networking interface start sytem daemons 5. runs all the inittab commands that block (action type: wait) 6. runs all the inittab commands that run only once (action type: once) 7. loops forever carrying out: 1. runs all the inittab commands that have to be respawned (action type: respawn) 2. runs all the inittab commands that have to be asked for first (action type: askfirst)

108 inittab for BusyBox init BusyBox init 會參考 /etc/inittab, 如果 /etc/inittab 不存在, 使用預設值 BusyBox init 的 inittab 格式 id:runlevels:action:process id 在 BusyBox init 的意義和 System V init 不同 用來指定 process 的 tty 如果不是 interactive 的程式, 這欄可以留空 runlevels BusyBox init 不 support runlevel, 這欄會被 ignore process 要執行的 command action 下表八種 action 之一

109 Types of inittab Actions Recognized by BusyBox init Action type sysinit respawn askfirst wait once ctrlaltdel shutdown restart Description provide init with the path to the initialization script restart process every time it terminates 類似 respawn, user 按下 Enter 後才 restart process tell init to wait for the process to complete before continuing run process only once without waiting for them run process when the Ctrl-Alt-Delete key combination is pressed run process when the system is shutting down run process when init restarts, 通常是 init 自己

110 init 開機時, Linux kernel 最後一項 initialization 的工作是執行 init init 是整個系統的第一個 process 所有 process 的 parent pid 是 0 init 會負責接手剩下的 initialization 工作, 生出許多 process Initialization 結束之後, init 還要負責收拾所有的 zombie 通常我們 PC 上用的 init 是模仿 System V init, 不過標準的 System V init 比較笨重, 我們可以用別的來取代 BusyBox init Minit 到 0.8 版為止, Minit 還不太成熟 在 PCM7230 這塊板子上 busybox 的 init 沒辦法正常運作, 所以我們另外再安裝標準的 System V init

111 Install System V init ftp://ftp.tcrc.edu.tw/unix/util/sysvinit/ 下載 sysvinit-2.84.tar.gz 放到 $PRJROOT/sysapps 底下 $tar zxvf sysvinit-2.84.tar.gz $cd $PRJROOT/sysapps/sysvinit-2.84/src $make CC=arm-linux-gcc $su m CC: 使用我們的 cross tool $make ROOT=$PRJROOT/rootfs install $exit ROOT: 安裝到 target 的 file system Install 時會出現 error, 因為預設是要安裝 man page. 可不理他或改 Makefile

112 (example) $PRJROOT/rootfs rootfs/etc 下的設定檔 fstab Filesystem table 644 # device mountpoint fs parameters dump fsck /dev/ram0 / ext2 defaults 1 1 none /proc proc defaults 0 0

113 (example) $PRJROOT/rootfs rootfs/etc 下的設定檔 (cont ) group Group table 644 root::0:root

114 (example) $PRJROOT/rootfs rootfs/etc 下的設定檔 (cont ) init.d/rcs System initialization script 755 #!/bin/sh # remount the root filesystem in read-write mode (requires /etc/fstab) mount -n -o remount,rw / # mount /proc filesystem mount /proc

115 (example) $PRJROOT/rootfs rootfs/etc 下的設定檔 (cont ) inittab init table 644 # /etc/inittab # Boot-time system configuration/initialization script. # setup initialization script ::sysinit:/etc/init.d/rcs # what to do when CTRL-ALT-DEL is pressed ::ctrlaltdel:/sbin/reboot # what to do when init restarts ::restart:/sbin/init # what to do when the system is shutting down ::shutdown:/bin/umount -a -r # put a getty on a serial line (for a terminal) ttys0::respawn:/sbin/getty -L ttys vt100

116 (example) $PRJROOT/rootfs rootfs/etc 下的設定檔 (cont ) issue Login 前會顯示這個檔案的內容 644 motd Login 成功後會顯示這個檔案的內容 644

117 (example) $PRJROOT/rootfs rootfs/etc 下的設定檔 (cont ) passwd Password file 644 root::0:0:root:/root:/bin/bash

118 (example) $PRJROOT/rootfs rootfs/etc 下的設定檔 (cont ) profile System-wide.profile file 644 export PATH=/bin:/sbin:/usr/bin:/usr/sbin export PS1="[\u@\h \W]\$ "

119 $PRJROOT/rootfs rootfs/etc 下的設定檔 把 etc_ori.tgz 放到 %PRJROOT/sysapps 底下 $ cd $PRJROOT/sysapps $ tar zxvf etc_ori.tgz $ cp a etc_ori/* $PRJROOT/rootfs/etc 用已經寫好的設定檔內容非常多, 有些可以不必用到, 可自己試試看更改 etc/ 底下的設定

120 Setup Ram Disk

121 Setup Ram Disk Setup cross-platform development tools Setup workspace Download toolchain source Compile kernel Setup root filesystem Create fs hierarchy Setup RAM disk Setup kernel headers Install libraries Setup binary utilities Install kernel modules Setup bootstrap compiler Install kernel images Setup C library Create device files Setup full compiler Install system utilities

122 Ram Disk 放在 RAM 裡, 像 block device 一樣的運作 Linux kernel support 同時使用多個 RAM disk 因為 RAM disk 像 block device, 所以可以用任何 disk filesystem RAM disk 通常會壓縮過 initial RAM disk (initrd) 開機時, kernel 會檢查 boot option 是否有 initrd 如果有, 解開 image 成 RAM disk mount 起來當作 root filesystem

123 Setup Ram Disk 產生 RAM disk image $ cd $PRJROOT $ mkdir tmp/initrd $ dd if=/dev/zero of=images/initrd.img bs=1k count=8192 create 一個 8192KB 的 filesystem image, 用 /dev/zero initialize 這麼做可以讓之後用 gzip 壓縮時的壓縮比最高 ( 不要重複利用之前製造出來的 image, 那會讓壓縮比降低 ) -if=file read from FILE instead of stdin -of=file write to FILE instead of stdout -bs=bytes force ibs=bytes and obs=bytes -ibs=bytes read BYTES bytes at a time -obs=bytes write BYTES bytes at a time count=blocks copy only BLOCKS input blocks /dev/zero read from zero always returns \0 character

124 Setup Ram Disk (cont ) Format $ su -m -m 不要 reset environment variables # mke2fs -Fv -m0 images/initrd.img -F 強制執行 mke2fs -v verbose -m0 不保留 block 給 super user Mount RAM disk # mount -o loop images/initrd.img tmp/initrd/ 把檔案 initrd.img 和 loop device 關聯起來, mount 到 tmp/initrd/

125 Setup Ram Disk (cont ) 把我們準備好的檔案複製進去 # cp -av rootfs/* tmp/initrd/ -a 等於 -dpr 不 dereference symbolic link 保留 mode, ownership, timestamps Unmount # umount tmp/initrd/ # exit 壓縮 RAM disk image $ gzip -9 < images/initrd.img > images/initrd.bin -9 最高的壓縮比

126 Porting 三個所需的 image 都已經有了 Bootloader Kernel image Root file system (ramdisk) 依序將它們放到 PCM7230 上面

127 使用 JTAG 重寫 boot loader 安裝 GIVEIO step1. 將 giveio 資料夾中的 GIVEIO.sys 複製到 C:\WINNT\system32\drivers 底下 step2. 控制台 [ 新增硬體 ]-> 下一步 -> 是, 我已連接這個硬體 -> 選 [ 新增硬體裝置 ]-> 選 [ 安裝我從清單中手動選取的硬體 ]-> 選 [COM 和 LPT]-> 選 [ 從磁片安裝 ], 選取 giveio.ini 所在的資料夾, 即完成安裝 giveio 連接 JTAG 線, command 下執行 Jen255.exe, 上傳 bootldr

128

129 Download Images and Run on PCM7230

130 連接 serial port 將 serial line 連接 PCM7230 和 host PC 開啟 windows 的超級終端機 開始 -> 附屬應用程式 -> 通訊 -> 超級終端機 設定 : COM1 每秒傳輸位元 : 資料位元 : 8 同為檢查 : 無 停止位元 : 1 流量控制 : 無 打開開關就能看到 boot 畫面

131 Boot loader 指令 一開機的 boot 畫面讀秒結束前按 Enter 即可進入 bootloader 的 command line 會出現 IBoot>

132 將 kernel image 以及 ramdisk image download 到 target 的 RAM 後開機

133 CF card 將已經編譯好的 kernel image 和 ramdisk 放到 CF card 中 將 CF 插入 PCM7230 開機之後 bootloader 預設會先檢查 CF 卡, 如果發現 kernel 和 ramdisk 則將他們 download 到 RAM 裡, 開始執行 所以檔名必須是 kernel 和 ramdisk.gz 如果沒有 CF 卡則從 flash 開機 將 image 寫入 RAM 之後就會開始正常開機程序 再如果 flash 裡也沒有 image 則會停在 boot loader command line IBoot> 以下我們使用手動的方法來將 image 寫入 RAM

134 Method(1) 使用 Compact Flash card 輸入下列指令 IBoot> pcmcia insert 出現以下畫面表示已成功寫入 RAM

135 Method(2) 使用 serial port 輸入以下指令 IBoot>download xmodem 0xA 超級終端機 -> 傳送 -> 傳送檔案 選擇 kernel 所在位置, 通訊協定選擇 Xmodem 開始傳送 IBoot>download xmodem 0xA 使用同樣方法將 ramdisk.gz 寫入 0xA

136

137 Booting from RAM IBoot>bootmem linux 0xA 從 memory 0xA 開始 booting linux 每次重新開機 RAM 裡面的 image 會消失, 所以必須寫入 flash

138 將 kernel 及 ramdisk image 寫入 flash

139 將 image 寫入 flash [usage] flash <destination> <source> <length> 把 kernel 寫入 flash IBoot> flash 0x040c0000 0xA x 把 ramdisk.gz 寫入 flash IBoot> flash 0x041c0000 0xA x 重新開機之後就會用寫入的 kernel 和 ramdisk 開機

PC Link Mode. Terminate PC Link? Esc. [GO]/[Esc] - - [GO]/[Esc] 轉接座未放滿. Make auto accord with socket mounted? [GO]/[Esc] Copy to SSD E0000

PC Link Mode. Terminate PC Link? Esc. [GO]/[Esc] - - [GO]/[Esc] 轉接座未放滿. Make auto accord with socket mounted? [GO]/[Esc] Copy to SSD E0000 Start SU-6808 EMMC Programmer V.0bd7 [ ]Link PC / [ ]Menu [ ] >.Select project.make new project.engineer mode.reset counter 5.Link to PC [ ] PC disconnected PC connected Select project SEM0G9C_A.prj Terminate

More information

SSL VPN User Manual (SSL VPN 連線使用手冊 )

SSL VPN User Manual (SSL VPN 連線使用手冊 ) SSL VPN User Manual (SSL VPN 連線使用手冊 ) 目錄 前言 (Preface) 1. ACMICPC 2018 VPN 連線說明 -- Pulse Secure for Windows ( 中文版 ):... 2 2. ACMICPC 2018 VPN 連線說明 -- Pulse Secure for Linux ( 中文版 )... 7 3. ACMICPC 2018

More information

Figure 1 Microsoft Visio

Figure 1 Microsoft Visio Pattern-Oriented Software Design (Fall 2013) Homework #1 (Due: 09/25/2013) 1. Introduction Entity relation (ER) diagrams are graphical representations of data models of relation databases. In the Unified

More information

桌上電腦及筆記本電腦安裝 Acrobat Reader 應用程式

桌上電腦及筆記本電腦安裝 Acrobat Reader 應用程式 On a desktop or notebook computer Installing Acrobat Reader to read the course materials The Course Guide, study units and other course materials are provided in PDF format, but to read them you need a

More information

一般來說, 安裝 Ubuntu 到 USB 上, 不外乎兩種方式 : 1) 將電腦上的硬碟排線先予以排除, 將 USB 隨身碟插入主機, 以一般光碟安裝方式, 將 Ubuntu 安裝到 USB

一般來說, 安裝 Ubuntu 到 USB 上, 不外乎兩種方式 : 1) 將電腦上的硬碟排線先予以排除, 將 USB 隨身碟插入主機, 以一般光碟安裝方式, 將 Ubuntu 安裝到 USB Ubuntu 是新一代的 Linux 作業系統, 最重要的是, 它完全免費, 不光是作業系統, 連用軟體都不必錢 為什麼要裝在 USB 隨身碟上? 因為, 你可以把所有的軟體帶著走, 不必在每一台電腦上重新來一次, 不必每一套軟體裝在每一台電腦上都要再一次合法授權 以下安裝方式寫的是安裝完整的 Ubuntu- 企業雲端版本 V. 11.10 的安裝過程, 若是要安裝 Desktop 版本, 由於牽涉到

More information

Oxford isolution. 下載及安裝指南 Download and Installation Guide

Oxford isolution. 下載及安裝指南 Download and Installation Guide Oxford isolution 下載及安裝指南 Download and Installation Guide 系統要求 個人電腦 Microsoft Windows 10 (Mobile 除外 ) Microsoft Windows 8 (RT 除外 ) 或 Microsoft Windows 7 (SP1 或更新版本 ) ( 網上下載 : http://eresources.oupchina.com.hk/oxfordisolution/download/index.html)

More information

港專單一登入系統 (SSO) 讓本校的同學, 全日制及兼職老師只要一個登入帳戶, 便可同時使用由本校提供的網上系統及服務, 包括 Blackboard 網上學習平台, 港專電郵服務, 圖書館電子資料庫及其他教學行政系統.

港專單一登入系統 (SSO) 讓本校的同學, 全日制及兼職老師只要一個登入帳戶, 便可同時使用由本校提供的網上系統及服務, 包括 Blackboard 網上學習平台, 港專電郵服務, 圖書館電子資料庫及其他教學行政系統. 港專單一登入系統 (SSO) 讓本校的同學, 全日制及兼職老師只要一個登入帳戶, 便可同時使用由本校提供的網上系統及服務, 包括 Blackboard 網上學習平台, 港專電郵服務, 圖書館電子資料庫及其他教學行政系統. 港專單一登入網站網址 http://portal.hkct.edu.hk (HKCT 之教職員, 學生 ) http://portal.ctihe.edu.hk (CTIHE 之教職員,

More information

Twin API Guide. How to use Twin

Twin API Guide. How to use Twin Twin API Guide How to use Twin 1 目錄 一 Cycle Job------------------------------------------------------------------------------------P3 二 Twin Action Table-----------------------------------------------------------------------P4-5

More information

UAK1-C01 USB Interface Data Encryption Lock USB 資料加密鎖. Specifications for Approval

UAK1-C01 USB Interface Data Encryption Lock USB 資料加密鎖. Specifications for Approval Product Definition C-MING Product Semi-finished Product OEM/ODM Product Component USB Interface Data Encryption Lock USB 資料加密鎖 Specifications for Approval Approval Manager Issued By Revision History Revision

More information

UNIX Basics + shell commands. Michael Tsai 2017/03/06

UNIX Basics + shell commands. Michael Tsai 2017/03/06 UNIX Basics + shell commands Michael Tsai 2017/03/06 Reading: http://www.faqs.org/docs/artu/ch02s01.html Where UNIX started Ken Thompson & Dennis Ritchie Multics OS project (1960s) @ Bell Labs UNIX on

More information

RENESAS BLE 實作課程 Jack Chen Victron Technology CO., LTD 2015 Renesas Electronics Corporation. All rights reserved.

RENESAS BLE 實作課程 Jack Chen Victron Technology CO., LTD 2015 Renesas Electronics Corporation. All rights reserved. RENESAS BLE 實作課程 2016-01-21 Jack Chen Jack.chen@victron.com.tw Victron Technology CO., LTD AGENDA CS+ & Renesas Flash Programmer 安裝 3 Renesas Flash Programmer 燒錄介紹 6 CS+ 介面介紹 11 CS+ 開啟 Project & 使用教學 14

More information

CLAD 考前準備 與 LabVIEW 小技巧

CLAD 考前準備 與 LabVIEW 小技巧 CLAD 考前準備 與 LabVIEW 小技巧 NI 技術行銷工程師 柯璟銘 (Jimmy Ko) jimmy.ko@ni.com LabVIEW 認證 Certified LabVIEW Associate Developer (LabVIEW 基礎認證 ) Certified LabVIEW Associate Developer LabVIEW 全球認證 40 題 (37 題單選,3 題複選

More information

Version Control with Subversion

Version Control with Subversion Version Control with Subversion 指導教授郭忠義 邱茂森 95598051 1 Table of contents (1) Basic concepts of subversion (1)What is Subversion (2)Version Control System (3)Branching and tagging (4) Repository and Working

More information

外薦交換生線上申請系統操作說明 Instruction on Exchange Student Online Application System. [ 中文版 ] [English Version]

外薦交換生線上申請系統操作說明 Instruction on Exchange Student Online Application System. [ 中文版 ] [English Version] 外薦交換生線上申請系統操作說明 Instruction on Exchange Student Online Application System [ 中文版 ] [English Version] 線上申請流程說明 申請系統網址 : http://schwebap.nccu.edu.tw/zeweb/exgstdapply/ 1. 建立新帳號 : 請輸入姓名 生日 email 做為未來登入系統用

More information

Chapter 7. Digital Arithmetic and Arithmetic Circuits. Signed/Unsigned Binary Numbers

Chapter 7. Digital Arithmetic and Arithmetic Circuits. Signed/Unsigned Binary Numbers Chapter 7 Digital Arithmetic and Arithmetic Circuits Signed/Unsigned Binary Numbers Signed Binary Number: A binary number of fixed length whose sign (+/ ) is represented by one bit (usually MSB) and its

More information

Multimedia Service Support and Session Management 鍾國麟

Multimedia Service Support and Session Management 鍾國麟 Multimedia Service Support and Session Management 鍾國麟 2003-9-31 1 1 Agenda Introduction What is Session? Definition Functions Why need Session Management 2G,Internet,3G SIP Basic Operation User Location

More information

InTANK ir2771-s3 ir2772-s3. User Manual

InTANK ir2771-s3 ir2772-s3. User Manual InTANK ir2771-s3 ir2772-s3 User Manual » InTANK...1» InTANK ir2771-s3 & ir2772-s3 產品使用說明... 10 V1.1 Introduction Thank you for purchasing RAIDON products. This manual will introduce the InTANK ir2771-s3

More information

The notice regarding Participation Ways of our global distributor video conference on Feb. 5.

The notice regarding Participation Ways of our global distributor video conference on Feb. 5. The notice regarding Participation Ways of our global distributor video conference on Feb. 5. On Feb.5, 2010 Los Angeles time, between 5:00 PM - 7:00 PM, we will convene an important global distributor

More information

Chapter 4 (Part IV) The Processor: Datapath and Control (Parallelism and ILP)

Chapter 4 (Part IV) The Processor: Datapath and Control (Parallelism and ILP) Chapter 4 (Part IV) The Processor: Datapath and Control (Parallelism and ILP) 陳瑞奇 (J.C. Chen) 亞洲大學資訊工程學系 Adapted from class notes by Prof. M.J. Irwin, PSU and Prof. D. Patterson, UCB 4.10 Instruction-Level

More information

2009 OB Workshop: Structural Equation Modeling. Changya Hu, Ph.D. NCCU 2009/07/ /07/03

2009 OB Workshop: Structural Equation Modeling. Changya Hu, Ph.D. NCCU 2009/07/ /07/03 Amos Introduction 2009 OB Workshop: Structural Equation Modeling Changya Hu, Ph.D. NCCU 2009/07/02- 2 Contents Amos Basic Functions Observed Variable Path Analysis Confirmatory Factor Analysis Full Model

More information

What is a Better Program?

What is a Better Program? 軟體的特性 What is a Better Program? 軟體之所謂軟 因為沒有 硬性 不可變 不可挑戰的規則 好處 : 彈性很大, 山不轉路轉, 沒有標準答案, 正常運作就好 C++ Object Oriented Programming 壞處 : 很多小問題合在一起不斷放大, 到處藏污納垢, 沒有標準答案, 不知道到底對了沒有 解決方法 Pei-yih Ting Coding styles

More information

4Affirma Analog Artist Design Flow

4Affirma Analog Artist Design Flow 4Affirma Analog Artist Design Flow Getting Started 1. 登入工作站 : Username : trainaxx Password : train0xx 其中 XX 代表工作站名字的號碼, 例如工作站名字叫做 traina01 的話,XX 就是 01 2. 先確定是否進入 Solaris 作業系統的 Common Desktop Environment(CDE)

More information

虛擬機 - 惡意程式攻防的新戰場. 講師簡介王大寶, 小時候大家叫他王小寶, 長大後就稱王大寶, 目前隸屬一神祕單位. 雖然佯稱興趣在看書與聽音樂, 但是其實晚上都在打 Game. 長期於系統最底層打滾, 熟悉 ASM,C/C++,

虛擬機 - 惡意程式攻防的新戰場. 講師簡介王大寶, 小時候大家叫他王小寶, 長大後就稱王大寶, 目前隸屬一神祕單位. 雖然佯稱興趣在看書與聽音樂, 但是其實晚上都在打 Game. 長期於系統最底層打滾, 熟悉 ASM,C/C++, 王大寶, PK 虛擬機 - 惡意程式攻防的新戰場 講師簡介王大寶, 小時候大家叫他王小寶, 長大後就稱王大寶, 目前隸屬一神祕單位. 雖然佯稱興趣在看書與聽音樂, 但是其實晚上都在打 Game. 長期於系統最底層打滾, 熟悉 ASM,C/C++, 對於資安毫無任何興趣, 也無經驗, 純粹是被某壞人騙上台, 可以說是不可多得的素人講師!! 議程大綱 : 現今的 CPU 都支援虛擬化專用指令集, 讓 VM

More information

Java 程式設計基礎班 (7) 劉根豪台大電機所網路資料庫研究室. Java I/O. Class 7 1. Class 7

Java 程式設計基礎班 (7) 劉根豪台大電機所網路資料庫研究室. Java I/O.   Class 7 1. Class 7 Java 程式設計基礎班 (7) 劉根豪台大電機所網路資料庫研究室 Email: kenliu@arbor.ee.ntu.edu.tw 1 回顧 Java I/O 2 1 Java Data Structure 動態資料結構 執行的時候可以動態變大或縮小 類型 Linked lists Stacks Queues Binary trees 3 自我參考類別 (self-referential classes)

More information

Preamble Ethernet packet Data FCS

Preamble Ethernet packet Data FCS Preamble Ethernet. packet Data FCS Destination Address Source Address EtherType Data ::: Preamble. bytes. Destination Address. bytes. The address(es) are specified for a unicast, multicast (subgroup),

More information

購票流程說明 How To purchase The Ticket?

購票流程說明 How To purchase The Ticket? 購票流程說明 How To purchase The Ticket? 步驟 1: 點選 登入 Click 登入 Login (You have to login before purchasing.) 步驟 2: 若已是會員請填寫會員帳號 密碼, 點選 登入 若非會員請點選 註冊 If you are the member of PB+, Please login. If not, please register.

More information

第九章結構化查詢語言 SQL - 資料定義語言 (DDL) 資料庫系統設計理論李紹綸著

第九章結構化查詢語言 SQL - 資料定義語言 (DDL) 資料庫系統設計理論李紹綸著 第九章結構化查詢語言 SQL - 資料定義語言 (DDL) 資料庫系統設計理論李紹綸著 SQL 的資料定義語言 本章內容 建立資料表 修改資料表 刪除資料表 FOREIGN KEY 外鍵條件約束與資料表關聯性 2 資料定義語言可分為下列三種 : SQL 的資料定義語言 CREATE TABLE 指令 : 用來建立一個基底關聯表, 和設定關聯表相關的完整性限制 CREATE VIEW 指令 : 用來建立一個視界,

More information

Java 程式設計基礎班 (7) 莊坤達台大電信所網路資料庫研究室. Java I/O. Class 7 1. Class 7 2

Java 程式設計基礎班 (7) 莊坤達台大電信所網路資料庫研究室. Java I/O.   Class 7 1. Class 7 2 Java 程式設計基礎班 (7) 莊坤達台大電信所網路資料庫研究室 Email: doug@arbor.ee.ntu.edu.tw Class 7 1 回顧 Java I/O Class 7 2 Java Data Structure 動態資料結構 Grow and shrink at execution time Several types Linked lists Stacks Queues Binary

More information

Software Architecture Case Study: Applying Layer in SyncFree

Software Architecture Case Study: Applying Layer in SyncFree Software Architecture Case Study: Applying Layer in SyncFree Chien-Tsun Chen Department of Computer Science and Information Engineering National Taipei University of Technology, Taipei 06, Taiwan ctchen@ctchen.idv.tw

More information

全面強化電路設計與模擬驗證. Addi Lin / Graser 2 / Sep / 2016

全面強化電路設計與模擬驗證. Addi Lin / Graser 2 / Sep / 2016 全面強化電路設計與模擬驗證 Addi Lin / Graser 2 / Sep / 2016 Agenda OrCAD Design Solution OrCAD Capture 功能應用 OrCAD Capture CIS 介紹 OrCAD PSpice 模擬與驗證 OrCAD Design Solution Powerful and Widely Used Design Solution Front-to-Back

More information

Chapter 7. Signed/Unsigned Binary Numbers. Digital Arithmetic and Arithmetic Circuits. Unsigned Binary Arithmetic. Basic Rules (Unsigned)

Chapter 7. Signed/Unsigned Binary Numbers. Digital Arithmetic and Arithmetic Circuits. Unsigned Binary Arithmetic. Basic Rules (Unsigned) Chapter 7 Digital rithmetic and rithmetic Circuits igned/unsigned inary Numbers igned inary Number: binary number of fixed length whose sign (+/ ) is represented by one bit (usually M) and its magnitude

More information

C B A B B C C C C A B B A B C D A D D A A B D C C D D A B D A D C D B D A C A B

C B A B B C C C C A B B A B C D A D D A A B D C C D D A B D A D C D B D A C A B 高雄市立右昌國中 106 學年度第二學期第二次段考三年級考科答案 國文科 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. C B D C A C B A D B 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. D C B A D C A B D B 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. C B D C B B C

More information

JAVA Programming Language Homework V: Overall Review

JAVA Programming Language Homework V: Overall Review JAVA Programming Language Homework V: Overall Review ID: Name: 1. Given the following Java code: [5 points] 1. public class SimpleCalc { 2. public int value; 3. public void calculate(){ value = value +

More information

David M. Kroenke and David J. Auer Database Processing Fundamentals, Design, and Implementation

David M. Kroenke and David J. Auer Database Processing Fundamentals, Design, and Implementation David M. Kroenke and David J. Auer Database Processing Fundamentals, Design, and Implementation Chapter Six: Transforming Data Models into Database Designs 6-1 Chapter Objectives To understand how to transform

More information

MH-3621-U3 Clone Dual SATA HDD Docking System

MH-3621-U3 Clone Dual SATA HDD Docking System MH-3621-U3 Clone CONTENTS ABOUT THE DOCKING SYSTEM... 2 HARD DRIVE INSTALLATION GUIDE... 5 CLONE OPERATION GUIDE... 6 NOTE... 8 LIMITED WARRANTY... 10 1 Thank you for purchasing MH-3621-U3 from archgon.

More information

Frame Relay 訊框中繼 FRSW S0/0 S0/1

Frame Relay 訊框中繼 FRSW S0/0 S0/1 Frame Relay 訊框中繼 將路由器設定為訊框中繼交換器以進行 frame relay 實驗 : 首先練習設定兩個埠的 frame relay switch FRSW S0/0 S0/1 介面 S0/0 介面 S0/1 102 201 DLI 102 DLI 201 Router(config)# hostname FRSW FRSW(config)# frame-relay switching

More information

Quick Installation Guide for Connectivity Adapter Cable CA-42

Quick Installation Guide for Connectivity Adapter Cable CA-42 9235663_CA42_1_en.fm Page 1 Monday, September 13, 2004 11:26 AM Quick Installation Guide for Connectivity Adapter Cable CA-42 9235645 Issue 1 Nokia, Nokia Connecting People and Pop-Port are registered

More information

Lotusphere Comes to You 輕鬆打造 Web 2.0 入口網站 IBM Corporation

Lotusphere Comes to You 輕鬆打造 Web 2.0 入口網站 IBM Corporation 輕鬆打造 Web 2.0 入口網站 2007 IBM Corporation 議程 Web 2.0 新特性一覽 Web 2.0 入口網站主題開發 用戶端聚合技術 PortalWeb2 主題 開發 AJAX portlets 程式 總結 JSR 286 及 WSRP 2.0 對 AJAX 的支援 AJAX 代理 用戶端 portlet 編程模型 Web 2.0 特性一覽 WP 6.1 提供的 Web

More information

InTANK ir2622 User Manual

InTANK ir2622 User Manual InTANK ir2622 User Manual » InTANK...1» InTANK ir2622 產品使用說明... 12 V1.2 » InTANK Introduction Thank you for purchasing RAIDON products. This manual will introduce the InTANK ir2622 Series. Before using

More information

購票流程說明 How To purchase The Ticket?

購票流程說明 How To purchase The Ticket? 購票流程說明 How To purchase The Ticket? 步驟 1: 已是會員請點選 登入, 選擇 2016 WTA 臺灣公開賽 Taiwan Open tickets Step1:If You are the member, please Click 登入 Click to the column: 2016 WTA 臺灣公開賽 Taiwan Open tickets Click 登入

More information

VB 拼圖應用 圖形式按鈕屬性 資科系 林偉川

VB 拼圖應用 圖形式按鈕屬性 資科系 林偉川 VB 拼圖應用 資科系 林偉川 圖形式按鈕屬性 Style 屬性 0 ( 標準外觀 ),1( 圖片外觀 ) Picture 屬性 圖形檔案 (VB6) image 屬性 圖形檔案 (VB.NET) Left=Top=0 Width=2052,Height=2052 共有九張圖 1.jpg 9.jpg Form1 執行時視窗為最大化 Windowstate 設為 2 2 1 執行結果 3 path$

More information

描述性資料採礦 Descriptive Data Mining

描述性資料採礦 Descriptive Data Mining 描述性資料採礦 Descriptive Data Mining 李御璽 (Yue-Shi Lee) 銘傳大學資訊工程學系 leeys@mail.mcu.edu.tw Agenda Cluster Analysis ( 集群分析 ) 找出資料間的內部結構 Association Rules ( 關聯規則 ) 找出那些事件常常一起出現 Sequence Clustering ( 時序群集 ) Clustering

More information

Ubiquitous Computing Using SIP B 朱文藝 B 周俊男 B 王雋伯

Ubiquitous Computing Using SIP B 朱文藝 B 周俊男 B 王雋伯 Ubiquitous Computing Using SIP B91902039 朱文藝 B91902069 周俊男 B91902090 王雋伯 Outline Ubiquitous Computing Using SIP 1. Introduction 2. Related Work 3. System Architecture 4. Service Example 1. Introduction

More information

EZCast Docking Station

EZCast Docking Station EZCast Docking Station Quick Start Guide Rev. 2.00 Introduction Thanks for choosing EZCast! The EZCast Docking Station contains the cutting-edge EZCast technology, and firmware upgrade will be provided

More information

Increase Productivity and Quality by New Layout Flow

Increase Productivity and Quality by New Layout Flow Increase Productivity and Quality by New Layout Flow Jonathan / Graser 16 / Oct / 2015 Design Process Introduction CONSTRAINTS PLACEMENT FANOUT BREAKOUT ROUTING DELAY (ATE) NET-GROUP Topology & Delay Physical

More information

Digital imaging & free fall of immersed sphere with wall effects

Digital imaging & free fall of immersed sphere with wall effects 量測原理與機工實驗 ( 下 ) 熱流實驗 ( 一 ) Digital imaging & free fall of immersed sphere with wall effects May 14-18, 2012 Objective: This week s lab work has two parts: (1) how to record digital video and convert it

More information

EZCast Wire User s Manual

EZCast Wire User s Manual EZCast Wire User s Manual Rev. 2.01 Introduction Thanks for choosing EZCast! The EZCast Wire contains the cutting-edge EZCast technology, and firmware upgrade will be provided accordingly in order to compatible

More information

Chapter 7 Pointers ( 指標 )

Chapter 7 Pointers ( 指標 ) Chapter Pointers ( 指標 ) Outline.1 Introduction.2 Pointer Variable Definitions and Initialization.3 Pointer Operators.4 Calling Functions by Reference.5 Using the const Qualifier with Pointers.6 Bubble

More information

InTANK ir2623-s3 User Manual

InTANK ir2623-s3 User Manual InTANK ir2623-s3 User Manual » InTANK...1» InTANK ir2623-s3 產品使用說明...12 V1.0 » InTANK Introduction Thank you for purchasing RAIDON products. This manual will introduce the IR2623-S3 Series. Before using

More information

SOHOTANK PD3500+ User Manual

SOHOTANK PD3500+ User Manual SOHOTANK PD3500+ User Manual » SOHORAID SR2 Series User Manual.3» SOHORAID SR2 系列產品使 用說明.. 14 2 Introduction Thank you for purchasing STARDOM products. This manual will introduce the SOHOTANK PD3500+ Series.

More information

Oracle Database 11g Overview

Oracle Database 11g Overview Oracle Database 11g Overview Charlie 廖志華倍力資訊資深系統顧問 Great Year for Oracle Database Database Market Database for SAP 14.3% 48.6% 9% 3% 17% 4% 15.0% 22.0% 67% Oracle IBM Microsoft Other

More information

私有雲公有雲的聯合出擊 領先的運算, 儲存與網路虛擬化技術 靈活的計費模式與經濟性 支援廣大的商業應用場景 涵蓋各類型雲服務 類標準的企業資料中心架構 全球規模與快速部署. 聯合設計的解決方案可為客戶提供最佳的 VMware 和 AWS

私有雲公有雲的聯合出擊 領先的運算, 儲存與網路虛擬化技術 靈活的計費模式與經濟性 支援廣大的商業應用場景 涵蓋各類型雲服務 類標準的企業資料中心架構 全球規模與快速部署. 聯合設計的解決方案可為客戶提供最佳的 VMware 和 AWS 私有雲公有雲的聯合出擊 領先的運算, 儲存與網路虛擬化技術 支援廣大的商業應用場景 類標準的企業資料中心架構 靈活的計費模式與經濟性 涵蓋各類型雲服務 全球規模與快速部署 聯合設計的解決方案可為客戶提供最佳的 VMware 和 AWS VMware Cloud on AWS 使用場景 A B C D 雲端遷移資料中心延伸災難備援次世代應用程式 Consolidate Migrate Maintain

More information

EZCast Wire. User s Manual. Rev. 2.00

EZCast Wire. User s Manual. Rev. 2.00 EZCast Wire User s Manual Rev. 2.00 Introduction Thanks for choosing EZCast! The EZCast Wire contains the cutting-edge EZCast technology, and firmware upgrade will be provided accordingly in order to compatible

More information

SOHORAID ST8-TB3 User Manual

SOHORAID ST8-TB3 User Manual SOHORAID ST8-TB3 User Manual » ST8-TB3 User Manual...1 1. Environmental Requirements...1 2. Product Appearance and Packaging Content...1 3. Hardware Requirements and Precautions...2 4. Hardware Installation...3

More information

Invitation to Computer Science 5 th Edition. Chapter 8 Information Security

Invitation to Computer Science 5 th Edition. Chapter 8 Information Security Invitation to Computer Science 5 th Edition Chapter 8 Information Security CIA Triad of Information Security Ensuring that data can be modified only by appropriate mechanisms Ensuring that data is protected

More information

微軟商務用 Skype 雲端視訊會議及與所需頻寬介紹

微軟商務用 Skype 雲端視訊會議及與所需頻寬介紹 微軟商務用 Skype 雲端視訊會議及與所需頻寬介紹 傳統視訊會議 : 視訊會議解決方案 以硬體設備為主, 內建專屬視訊會議軟體, 要增加連線數量就必須加購昂貴的 MCU Server, 整套設備的價格多在數百萬之譜 軟體式視訊會議 : 在現有的基礎設備上, 強化整合通訊功能 (UC), 再結合視訊會議功能 (VC, Video Conference), 對於公司的網路系統或是通訊系統做更有效率的運用

More information

如何查看 Cache Engine 缓存中有哪些网站 /URL

如何查看 Cache Engine 缓存中有哪些网站 /URL 如何查看 Cache Engine 缓存中有哪些网站 /URL 目录 简介 硬件与软件版本 处理日志 验证配置 相关信息 简介 本文解释如何设置处理日志记录什么网站 /URL 在 Cache Engine 被缓存 硬件与软件版本 使用这些硬件和软件版本, 此配置开发并且测试了 : Hardware:Cisco 缓存引擎 500 系列和 73xx 软件 :Cisco Cache 软件版本 2.3.0

More information

Mid-term EXAM. 11/14/2009

Mid-term EXAM. 11/14/2009 Mid-term EXAM. 11/14/2009 1. (15%) Data Compression a) Encode the following characters using Huffman coding with the given frequencies: A(12), B(8), C(9), D(20), E(31), F(14), G(8) (-1 point if theree

More information

SPI 功能使用方法 Application Note

SPI 功能使用方法 Application Note 1 適用產品 :SM59R16A2 / SM59R08A2 2 SPI 使用概述 : SPI 通信使用 4 個引腳, 分別為 SPI_: 當 master 時資料輸出 ; 當 slave 時資料輸入 SPI_: 當 master 時資料輸入 ; 當 slave 時資料輸出 SPI_SCK: SPI 的時脈信號由 master 主控產生 ; 資料 ( 輸出及輸入 ) 和時脈同步 SPI_SS: 此引腳功能唯有當作

More information

Additional Information

Additional Information Additional Information Apple, ipad, iphone, ipod touch, Macintosh, Mac OS, OS X and Bonjour are trademarks of Apple Inc., registered in the U.S. and other countries. AirPrint and the AirPrint logo are

More information

多元化資料中心 的保護策略 技術顧問 陳力維

多元化資料中心 的保護策略 技術顧問 陳力維 多元化資料中心 的保護策略 技術顧問 陳力維 現代化的資料保護架構 使用者自助服務 任何儲存設備 影響低 多種還原點選擇 (RPO) Application Server 完整全面的雲端整合 Network Disk Target 容易操作與深入各層的報表能力 管理快照與複製能力 Primary Storage 快速 可靠的還原 (RTO) 完整的磁帶 & 複製管理 單一整合的解決方案 企業級的擴充性

More information

Clonezilla Live 實務與應用

Clonezilla Live 實務與應用 Clonezilla Live 實務與應用 孫振凱蔡育欽 http://drbl.nchc.org.tw, http://drbl.sourceforge.net http://clonezilla.nchc.org.tw, http://clonezilla.org.tw 國家高速網路與計算中心 National Center for High-Performance Computing (NCHC)

More information

Operating Systems 作業系統

Operating Systems 作業系統 Chapter 7 Operating Systems 作業系統 7.1 Source: Foundations of Computer Science Cengage Learning Objectives 學習目標 After studying this chapter, students should be able to: 7.2 Understand the role of the operating

More information

Port GCC to a new architecture Case study: nds32

Port GCC to a new architecture Case study: nds32 HelloGCC 2013 Port GCC to a new architecture Case study: nds32 2013.11.16 Chung-Ju Wu ( 吳中如 ) www.andestech.com WWW.ANDESTECH.COM Overview of Andes Technology Corporate Highlights Founded in 2005 in Hsinchu

More information

Allegro SPB V16 Advance

Allegro SPB V16 Advance Allegro SPB V16 Advance Allegro SPB 16.2 Advance Import Logic Back Annotate Netlist Compare Advanced Placement Constraint Management Differential Pair Import Logic Other Cadence Import Logic Other 利用 Other

More information

Lomographic Society Taiwan Institute of Creative Industry Design

Lomographic Society Taiwan Institute of Creative Industry Design Lomographic Society Taiwan Institute of Creative Industry Design On 2008.10.07 Allan, PA6971076 Contents 中文摘要 02 Short story of Lomographic Society 03 About Lomographic Society Taiwan 04 Lomo Spirit 06

More information

使用 TensorFlow 設計矩陣乘法計算並轉移執行在 Android 上 建國科技大學資管系 饒瑞佶 2017/8

使用 TensorFlow 設計矩陣乘法計算並轉移執行在 Android 上 建國科技大學資管系 饒瑞佶 2017/8 使用 TensorFlow 設計矩陣乘法計算並轉移執行在 Android 上 建國科技大學資管系 饒瑞佶 2017/8 Python 設計 Model import tensorflow as tf from tensorflow.python.tools import freeze_graph from tensorflow.python.tools import optimize_for_inference_lib

More information

BTC, EMPREX Wireless Keybaord +Mouse + USB dongle. 6309URF III Quick Installation Guide

BTC, EMPREX Wireless Keybaord +Mouse + USB dongle. 6309URF III Quick Installation Guide BTC, EMPREX 6309URF III Quick Installation Guide Hardware Installation 1. Plug the dongle receiver connector into your available USB port on PC. 2. Make sure the batteries of the keyboard and mouse are

More information

Common Commands in Low-Level File I/O

Common Commands in Low-Level File I/O Common Commands in Low-Level File I/O feof(fid), which refers to end-of-file, returns 1 if a previous operation set the end-of-file indicator for the specified file. tline = fgetl(fid) returns the next

More information

EdConnect and EdDATA

EdConnect and EdDATA www.hkedcity.net Tryout Programme of Standardised Data Format for e-textbook and e-learning Platform EdConnect and EdDATA 5 December 2018 Agenda Introduction and background Try-out Programme Q&A 電子課本統一數據格式

More information

黃河凱. Kaiser Huang 巨匠電腦北區 / 新竹認證中心認證講師國立新竹教育大學數位學習科技研究所在職生微軟原廠認證講師 MCT

黃河凱. Kaiser Huang 巨匠電腦北區 / 新竹認證中心認證講師國立新竹教育大學數位學習科技研究所在職生微軟原廠認證講師 MCT 黃河凱 Kaiser Huang 巨匠電腦北區 / 新竹認證中心認證講師國立新竹教育大學數位學習科技研究所在職生微軟原廠認證講師 MCT 2007-2014 微軟嵌入式系統 TTT 教育認證講師 kai168@gmail.com. MCT, MCITP-SA/EA, MCTS-WS2008/CE6/XPe, LPIC 第一堂 : 系統安裝與升級設定的簡介 全新式安裝的步驟與方法 從 DVD 或 USB

More information

AVG Anti-Virus User Manual. Document revision ( )

AVG Anti-Virus User Manual. Document revision ( ) AVG Anti-Virus 2012 User Manual Document revision 2012.01 (27.7.2011) Copyright AVG Technologies CZ, s.r.o. All rights reserved. All other trademarks are the property of their respective owners. This product

More information

Previous on Computer Networks Class 18. ICMP: Internet Control Message Protocol IP Protocol Actually a IP packet

Previous on Computer Networks Class 18. ICMP: Internet Control Message Protocol IP Protocol Actually a IP packet ICMP: Internet Control Message Protocol IP Protocol Actually a IP packet 前 4 个字节都是一样的 0 8 16 31 类型代码检验和 ( 这 4 个字节取决于 ICMP 报文的类型 ) ICMP 的数据部分 ( 长度取决于类型 ) ICMP 报文 首部 数据部分 IP 数据报 ICMP: Internet Control Message

More information

ICP Enablon User Manual Factory ICP Enablon 用户手册 工厂 Version th Jul 2012 版本 年 7 月 16 日. Content 内容

ICP Enablon User Manual Factory ICP Enablon 用户手册 工厂 Version th Jul 2012 版本 年 7 月 16 日. Content 内容 Content 内容 A1 A2 A3 A4 A5 A6 A7 A8 A9 Login via ICTI CARE Website 通过 ICTI 关爱网站登录 Completing the Application Form 填写申请表 Application Form Created 创建的申请表 Receive Acknowledgement Email 接收确认电子邮件 Receive User

More information

Protech RMA Request Form

Protech RMA Request Form Applied Company: Contact Person: E-mail: DOA NO. (BY PROTECH BU): Serial Warrant No. Model Number y Status 1 2 3 4 5 6 7 Protech RMA Request Form *Defect Description Date: Page:1 of 1 DOA Regular RMA Environmen

More information

Thread. Running several threads is similar to running several different programs concurrently, but with the following benefits:

Thread. Running several threads is similar to running several different programs concurrently, but with the following benefits: Thread Running several threads is similar to running several different programs concurrently, but with the following benefits: Multiple threads within a process share the same data space with the main

More information

打造新世代企業資料中心 Windows Server 2016 重裝登場. 馮立偉 Hybrid Cloud Lead Microsoft Taiwan

打造新世代企業資料中心 Windows Server 2016 重裝登場. 馮立偉 Hybrid Cloud Lead Microsoft Taiwan 打造新世代企業資料中心 Windows Server 2016 重裝登場 馮立偉 Hybrid Cloud Lead Microsoft Taiwan www.20yearsofwindowsserver.com Windows Server 2016 現今攻擊時程 第一個主機被滲透 網域管理者帳號被破解 攻擊者被發現 24 48 小時 超過 200 天 ( 每個產業不同 ) 攻擊目標及方向

More information

Use of SCTP for Handoff and Path Selection Strategy in Wireless Network

Use of SCTP for Handoff and Path Selection Strategy in Wireless Network Use of SCTP for Handoff and Path Selection Strategy in Wireless Network Huai-Hsinh Tsai Grad. Inst. of Networking and Communication Eng., Chaoyang University of Technology s9530615@cyut.edu.tw Lin-Huang

More information

Channel Python API Overview

Channel Python API Overview Channel Python API verview The Channel API creates a persistent connection between your application and Google servers, allowing your application to send messages to JavaScript clients in real time without

More information

RA8835. Dot Matrix LCD Controller Q&A. Preliminary Version 1.2. July 13, RAiO Technology Inc.

RA8835. Dot Matrix LCD Controller Q&A. Preliminary Version 1.2. July 13, RAiO Technology Inc. RAiO Dot Matrix LCD Controller Q&A Preliminary Version 1.2 July 13, 2009 RAiO Technology Inc. Copyright RAiO Technology Inc. 2009 Update History Version Date Description 1.0 July 13, 2009 Preliminary Version

More information

Clonezilla 實務技術 孫振凱蔡育欽

Clonezilla 實務技術 孫振凱蔡育欽 Clonezilla 實務技術 孫振凱蔡育欽 http://drbl.nchc.org.tw, http://drbl.sourceforge.net http://clonezilla.nchc.org.tw, http://clonezilla.org.tw 國家高速網路與計算中心 National Center for High-Performance Computing (NCHC) Q2,

More information

微算機原理與實驗 Principle of Microcomputer(UEE 2301/1071 )

微算機原理與實驗 Principle of Microcomputer(UEE 2301/1071 ) 微算機原理與實驗 (UEE 2301/1071 ) Chap 6. MCS-51 Instruction sets 宋開泰 Office:EE709 Phone:5731865( 校內分機 :31865) E-mail:ktsong@mail.nctu.edu.tw URL:http://isci.cn.nctu.edu.tw 1 Lab#3 5 x 7 單色點矩陣 LED(Dot Matrix)

More information

步驟 1: 首頁以 facebook 或 google 帳號登入, 並點選節目 Step 1:Log in with your facebook/google account, then click the show banner.

步驟 1: 首頁以 facebook 或 google 帳號登入, 並點選節目 Step 1:Log in with your facebook/google account, then click the show banner. 步驟 1: 首頁以 facebook 或 google 帳號登入, 並點選節目 Step 1:Log in with your facebook/google account, then click the show banner. 步驟 2: 填寫會員資料 Step 2:Fill out the membership form. Name ID No. Male/female Foreigner

More information

Syntest Tool 使用說明. Speaker: Yu-Hsien Cheng Adviser: Kuen-Jong Lee. VLSI/CAD Training Course

Syntest Tool 使用說明. Speaker: Yu-Hsien Cheng Adviser: Kuen-Jong Lee. VLSI/CAD Training Course Syntest Tool 使用說明 Speaker: Yu-Hsien Cheng Adviser: Kuen-Jong Lee yhc97@beethoven.ee.ncku.edu.tw VLSI/CAD Training Course Foreword Why testing? Class.2 Why Testing? Economics! Reduce test cost (enhance

More information

English G H. Package Contents. Hardware Requirements. Technical Specifications. Device Overview. MSI DS502 GAMING HEADSET User Guide

English G H. Package Contents. Hardware Requirements. Technical Specifications. Device Overview. MSI DS502 GAMING HEADSET User Guide Package Contents MSI DS502 GAMING HEADSET User Guide Hardware Requirements PC with USB port Windows 8.1/8/7/XP English Technical Specifications Headphones * Drivers : Ø40mm * Sensitivity (S.P.L) : 105

More information

三 依赖注入 (dependency injection) 的学习

三 依赖注入 (dependency injection) 的学习 三 依赖注入 (dependency injection) 的学习 EJB 3.0, 提供了一个简单的和优雅的方法来解藕服务对象和资源 使用 @EJB 注释, 可以将 EJB 存根对象注入到任何 EJB 3.0 容器管理的 POJO 中 如果注释用在一个属性变量上, 容器将会在它被第一次访问之前赋值给它 在 Jboss 下一版本中 @EJB 注释从 javax.annotation 包移到了 javax.ejb

More information

游家德 Jade Freeman 群智信息 / 敦群數位資深架構顧問

游家德 Jade Freeman 群智信息 / 敦群數位資深架構顧問 游家德 Jade Freeman 群智信息 / 敦群數位資深架構顧問 搜尋對企業的需求方案關係 微軟全面性的搜尋方案及應用價值 Enterprise Search 的基本架構 Microsoft Search Solution 物件模型與客製開發 Microsoft Search Solution 應用與案例 Q&A 每人每天會花 10 分鐘在找企業所需文件, 且還可能找不到! 整合的資料大都雜亂無章,

More information

報告人 / 主持人 : 林寶樹 Colleges of Computer Science & ECE National Chiao Tung University

報告人 / 主持人 : 林寶樹 Colleges of Computer Science & ECE National Chiao Tung University 行動寬頻尖端技術跨校教學聯盟 - 行動寬頻網路與應用 MiIoT ( Mobile intelligent Internet of Things) 報告人 / 主持人 : 林寶樹 Colleges of Computer Science & ECE National Chiao Tung University Aug 14, 2015 課程簡介 課程綱要 實作平台評估 2 背景說明 目前雲端與行動寬頻緊密結合,

More information

Briefing Session on 2013 HKDSE ICT Exam. 22/23 Nov 2013

Briefing Session on 2013 HKDSE ICT Exam. 22/23 Nov 2013 Briefing Session on 2013 HKDSE ICT Exam 22/23 Nov 2013 1 Breakdown of elective No. of candidates No. of schools 1 7,759 490 2A 862 55 2B 269 27 2C 5,607 367 2D 1,239 104 2 Options offered No. of options

More information

<properties> <jdk.version>1.8</jdk.version> <project.build.sourceencoding>utf-8</project.build.sourceencoding> </properties>

<properties> <jdk.version>1.8</jdk.version> <project.build.sourceencoding>utf-8</project.build.sourceencoding> </properties> SpringBoot 的基本操作 一 基本概念在 spring 没有出现的时候, 我们更多的是使用的 Spring,SpringMVC,Mybatis 等开发框架, 但是要将这些框架整合到 web 项目中需要做大量的配置,applicationContext.xml 以及 servlet- MVC.xml 文件等等, 但是这些文件还还不够, 还需要配置 web.xml 文件进行一系列的配置 以上操作是比较麻烦的,

More information

Understanding IO patterns of SSDs

Understanding IO patterns of SSDs 固态硬盘 I/O 特性测试 周大 众所周知, 固态硬盘是一种由闪存作为存储介质的数据库存储设备 由于闪存和磁盘之间物理特性的巨大差异, 现有的各种软件系统无法直接使用闪存芯片 为了提供对现有软件系统的支持, 往往在闪存之上添加一个闪存转换层来实现此目的 固态硬盘就是在闪存上附加了闪存转换层从而提供和磁盘相同的访问接口的存储设备 一方面, 闪存本身具有独特的访问特性 另外一方面, 闪存转换层内置大量的算法来实现闪存和磁盘访问接口之间的转换

More information

微軟新一代私有雲服務. 利用 Windows Azure Pack 協助企業建構現代化的 IT 服務架構, 提升競爭力降低維運成本. Jason Chou Architect. Nov 7, 2013

微軟新一代私有雲服務. 利用 Windows Azure Pack 協助企業建構現代化的 IT 服務架構, 提升競爭力降低維運成本. Jason Chou Architect. Nov 7, 2013 微軟新一代私有雲服務 利用 Windows Azure Pack 協助企業建構現代化的 IT 服務架構, 提升競爭力降低維運成本 Jason Chou Architect Nov 7, 2013 Agenda Cloud OS Vision Windows Server 2012 R2 New Features Windows Azure Pack Overview Success Case High-performance

More information

Password Protection 此篇文章說明如何在程式中加入密碼保護的機制, 當程式開啟, 使用者必須先輸入使用者帳號及密碼, 若是合法使用者才能進入應用程式

Password Protection 此篇文章說明如何在程式中加入密碼保護的機制, 當程式開啟, 使用者必須先輸入使用者帳號及密碼, 若是合法使用者才能進入應用程式 Password Protection 此篇文章說明如何在程式中加入密碼保護的機制, 當程式開啟, 使用者必須先輸入使用者帳號及密碼, 若是合法使用者才能進入應用程式 Step 1. 使用 Visual C++ 6.0 產生一個 MFC Application 1) Project name: PasswordProtection 2) Project type: MFC AppWizard(exe)

More information

WriteAhead 遨遊雲端暨 行動學習應 用 研討會 雲端時代的資訊教育與語 言學習 介紹互動式寫作環境 張俊盛 清華 大學資訊 工程系及研究所 2015 年 4 月 21 日 ( 二 ) 上午 10:00 ~ 12:30 台北市 立 大同 高中 行政 大學 5 樓階梯教室

WriteAhead 遨遊雲端暨 行動學習應 用 研討會 雲端時代的資訊教育與語 言學習 介紹互動式寫作環境 張俊盛 清華 大學資訊 工程系及研究所 2015 年 4 月 21 日 ( 二 ) 上午 10:00 ~ 12:30 台北市 立 大同 高中 行政 大學 5 樓階梯教室 遨遊雲端暨 行動學習應 用 研討會 雲端時代的資訊教育與語 言學習 介紹互動式寫作環境 WriteAhead 張俊盛 清華 大學資訊 工程系及研究所 2015 年 4 月 21 日 ( 二 ) 上午 10:00 ~ 12:30 台北市 立 大同 高中 行政 大學 5 樓階梯教室 高中資訊教育 培養現代公 民的資訊素養 並不是如何使 用 生產 力軟體 也不只是寫程式 了解現在商業軟體並 非唯 一的選擇,

More information

Ch. 2: Getting Started

Ch. 2: Getting Started Ch. 2: Getting Started 1 About this lecture Study a few simple algorithms for sorting Insertion Sort Selection Sort, Bubble Sort (Exercises) Merge Sort Show why these algorithms are correct Try to analyze

More information

微處理機系統 吳俊興高雄大學資訊工程學系. February 21, What are microprocessors (µp)? What are the topics of this course? Why to take this course?

微處理機系統 吳俊興高雄大學資訊工程學系. February 21, What are microprocessors (µp)? What are the topics of this course? Why to take this course? 微處理機系統 吳俊興高雄大學資訊工程學系 February 21, 2005 processor, central processing unit (CPU) A silicon chip which forms the core of a microcomputer The heart of the microprocessor-based computer system Concept of what

More information

Android + TIBBO + Socket 建國科技大學資管系 饒瑞佶

Android + TIBBO + Socket 建國科技大學資管系 饒瑞佶 Android + TIBBO + Socket 建國科技大學資管系 饒瑞佶 Socket Socket 開始前 TIBBO 需要設定 Socket on_sock_data_arrival() ' 接收外界來的 SOCKET 資訊 sub on_sock_data_arrival() Dim command_data as string ' 完整控制命令 command_data = "" ' 初始化控制命令

More information

Simulation of SDN/OpenFlow Operations. EstiNet Technologies, Inc.

Simulation of SDN/OpenFlow Operations. EstiNet Technologies, Inc. Simulation of SDN/OpenFlow Operations EstiNet Technologies, Inc. Agenda: (1) 模擬器簡介 (2) 模擬器的基本操作 (3) 如何建置一個 SDN Topology (5) 如何下達指令並觀察 Flow Table, Group Table 與 Meter Table (5) 如何用 SDN 下達 QoS 指令並觀察結果 (6)

More information